我尝试导入各种Firebase软件包以阻止此错误发生,但它仍然存在。我正在尝试做一些事情:
firebase.addValueEventListener(new ValueEventListener() {
但我一直收到错误:
Cannot Resolve symbol 'addValueEventListener'
尽管我已经导入了ValueEventListener。 (可能需要注意的是,ValueEventListener在IDE中显示为未使用的导入,即使我明显尝试使用它)
答案 0 :(得分:0)
确保您正在实例化并在方法(例如OnStart(){}或您正在使用的类的构造函数中添加方法。如果不是,它将与您描述的方式类似。
此问题的示例:
public class ReadFromFireBase(){
private DatabaseReference mDatabase;
public ReadFromFireBase(){
}
ValueEventListener postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get Post object and use the values to update the UI
Post post = dataSnapshot.getValue(Post.class);
// ...
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
// ...
}
};
mDataBase.addValueEventListener(postListener);
}
这不起作用,抛出类似于你得到的错误,给出听众结构的方式是一个容易犯的错误
正确的方法是:
public class ReadFromFireBase(){
private DatabaseReference mDatabase;
private ValueEventListener postListener;
public ReadFromFireBase(){
postListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Get Post object and use the values to update the UI
Post post = dataSnapshot.getValue(Post.class);
// ...
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
// ...
}
};
mDataBase.addValueEventListener(postListener);
}
}
答案 1 :(得分:0)
package com.example.firebase;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.ValueEventListener;
导入这些软件包,您的错误将得到解决。