Android Studio Firebase“没有这样的实例字段”错误
问题描述:
我正在为我的Android应用使用Firebase。在下面的代码,Android Studio Firebase“没有这样的实例字段”错误
DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
matchReference = rootReference.child("tournaments");
userReference = rootReference.child("Users").child(deviceID);
userReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot : dataSnapshot.getChildren()) {
if(snapshot.child(matchList.get(position).getId()).exists()) {
//If the user has Starred this game
isStarred = true;
} else { isStarred = false; }
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我得到的userReference
领域"No Such instance field"
错误。当我调试它时,它给了我正确的数据库路径,但它不会进入addValueEventListener
函数。
我的数据库看起来像
,并呼吁 “starredGames” 另一个孩子将在我的代码被添加。
为什么它给了我错误?
答
让你deviceID
价值的正确方法是:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference deviceIDRef = rootRef.child("Users").child("6610609cfc2c7945");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String deviceID = dataSnapshot.child("deviceID").getValue(String.class);
Log.d("TAG", deviceID);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
deviceIDRef.addListenerForSingleValueEvent(eventListener);
是您'userReference'应该是你的'matchReference'的孩子,而不是'rootReference'?你能否更详细地展示你的Firebase结构? – timothyclifford