从Firebase错误读取时出错:ValueEventListener

时间:2016-08-12 19:01:12

标签: java android firebase firebase-realtime-database

我正在尝试使用代码straight from their documentation从firebase数据库中读取数据。我在下面有我的代码,当我尝试将"12:34", "interface", "bob.saget67", "MAC", "127.0.0.1:12-34-56-78-9A-BC", "src", "SRC=127.0.0.2", "dst", "DST=127.0.0.3" 添加到我的ValueEventListener变量时,我看到以下错误。

  

Query中的addValueEventListener(com.firebase.client.ValueEventListener)无法应用于(com.firebase.client.ValueEventListener)

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

  

导入com.google.firebase.database.ValueEventListener;

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

import

enter image description here

更新 使用整个类名后仍然有相同的问题: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

1 个答案:

答案 0 :(得分:3)

您将旧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'