java - 从 Firebase 读取时出错错误 : ValueEventListener

标签 java android firebase firebase-realtime-database

我正在尝试使用代码 straight from their documentation 从 Firebase 数据库中读取数据。我的代码如下,当我尝试将 ValueEventListener 添加到我的 Firebase 引用 变量时,我看到以下错误。

addValueEventListener (com.firebase.client.ValueEventListener) in Query cannot be applied to (com.firebase.client.ValueEventListener)

我很困惑为什么会出现此错误,因为以下是我在 Java 类文件顶部使用的 import 语句。

import com.google.firebase.database.ValueEventListener;

基本上,我只是想从运行的 Firebase 中获得基本的读取信息。我做错了什么?

public void readfromFireDB() {
    Firebase ref = new Firebase("https://my_project.firebaseio.com/");

    ValueEventListener postListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            for(DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                Question qn = postSnapshot.getValue(Question.class);
                mLog.printToLog("RECEIVED DATA = " + qn.getAnswer() + "," + qn.getLevel());
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            mLog.printToLog("in onCancelled, database error = " + databaseError.toString());
        }
    };

    ref.addValueEventListener(postListener); //THIS IS WHERE THE ERROR IS

}

enter image description here

更新: 使用整个类名后仍然遇到同样的问题:com.google.firebase.database.ValueEventListener postListener = new com.google.firebase.database.ValueEventListener() { ... }

enter image description here

最佳答案

您将旧版 SDK (2.X) 中的类与新 SDK (9.X) 混合。 Firebase是遗产,ValueEventListener是新的。

要使用新的 SDK,所有导入都应以 com.google.firebase.database 开头。

旧版导入以 com.firebase.client 开头。

我假设您想使用新的 SDK。如果是这样,您的模块 build.gradle 依赖项应包括:

compile 'com.google.firebase:firebase-database:9.4.0'

并且不应该包括:

compile 'com.firebase:firebase-client-android:2.5.0'

关于java - 从 Firebase 读取时出错错误 : ValueEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38924846/

相关文章:

java - BufferedImage 缓冲区大小错误

java - 限制此程序以确定不包含零的倒数整数之和

android - MPAndroidChart : Is it possible to rotate value labels for a given DataSet?

java - 处理操作栏向上按钮的正确方法?

android - 使用 Firebase 进行单元测试

swift - 如何从 child 那里得到 parent

java - 我如何查看 Java 进行了哪些优化

java - 从数据库中删除行

安卓工程: ListView versus just a dynamic LinearLayout

node.js - Firebase Flashlight(ElasticSearch)过滤,排序,分页