我尝试导入各种Firebase软件包来阻止此错误的发生,但该错误仍然存​​在。我正在尝试采取以下措施:

   firebase.addValueEventListener(new ValueEventListener() {


但我一直在得到错误:

Cannot Resolve symbol 'addValueEventListener'


尽管事实上我有ValueEventListener导入。 (可能很重要的一点是,即使我显然试图使用ValueEventListener,它也会在IDE中显示为未使用的导入)

最佳答案

确保实例化该方法并将其添加到诸如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);
}






}

07-28 11:47