从Firebase中读取错误错误:ValueEventListener
我正在尝试使用代码straight from their documentation从Firebase数据库读取数据。我的代码如下,当我尝试将ValueEventListener
添加到我的Firebase reference
变量中时,我看到以下错误。从Firebase中读取错误错误:ValueEventListener
addValueEventListener (com.firebase.client.ValueEventListener) in Query cannot be applied to (com.firebase.client.ValueEventListener)
我很困惑,为什么出现这种错误,因为下面是import
声明我在Java类文件的顶部使用。
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
}
UPDATE: 仍然有使用整个类名后,同样的问题前夜:从传统的SDK com.google.firebase.database.ValueEventListener postListener = new com.google.firebase.database.ValueEventListener() { ... }
你混合类(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'
主要'Firebase'参考我有这个:'import com.firebase.client.Firebase;'。这是错的吗?当我添加Firebase参考时,这是使用Alt + Enter键获得的唯一选项。 – user1406716
Firebase未在新SDK中使用,由[FirebaseDatabase](https://developers.google.com/android/reference/com/google/firebase/database/FirebaseDatabase)和[DatabaseReference](https:/ /developers.google.com/android/reference/com/google/firebase/database/DatabaseReference)。 –
这工作,谢谢。 – user1406716
尝试完全限定类名:'com.google.firebase.database.ValueEventListener postListener = new com.google.firebase.database.ValueEventListener(){...}'看看是否可以解决这个问题。 –
仍然收到错误。用我看到的错误更新了问题。这是因为我的'ref'变量期望使用'com.google.firebase.client.ValueEventListener'而不是'com.google.firebase.database.ValueEventListener' – user1406716
如果您从此链接开始“install firebase sdk”https: //firebase.google.com/docs/android/setup ,然后在这里“开始使用Firebase数据库”https://firebase.google.com/docs/database/android/start/按照每条说明进行操作已经给出“检索数据”(3页之后),你将永远不会遇到这样的问题。 – Raj