我正在尝试使用代码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
更新
使用整个类名后仍然有相同的问题: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
}
答案 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'