我尝试导入各种 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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)