我从 Firebase 检索了一个对象,并想使用我想要其值的每个字段的名称来访问它的值。在 javascript 中,这就像 myObject.name
一样简单,用于检索对象中的名称。
我怎样才能在 Java 中做同样的事情?
mDatabase = FirebaseDatabase.getInstance().getReference();
user = FirebaseAuth.getInstance().getCurrentUser();
userId = user.getUid();
ValueEventListener myObjectListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.i(TAG, "getting data");
Object myObject = dataSnapshot.getValue();
Log.v(TAG, myObject.toString());
// Outputs: {name= "john doe", hair="brown", isStudent=true, age=12}
// HERE is where I would like to get the name.
// DOES NOT work. Have also attempted things like
// myObject.getString("name"), etc.
myObject.getClass().getFieldName("name")
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
}
};
mDatabase.child("users").child(userId).addValueEventListener(myObjectListener);
原文由 Rbar 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试这个:
如果 你有一个 正确定义 的
User
类,那么这会更好:最后,还有第三种选择(使用
DataSnapshot.child(String)
方法):