【发布时间】:2017-10-27 10:29:27
【问题描述】:
我已从 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);
【问题讨论】:
-
myObject.getName()不起作用?或者如果名称是公开的myObject.name -
你是问如何使用反射?
-
我从未使用过 Firebase。但是阅读 javadoc 让这变得非常简单:firebase.com/docs/java-api/javadoc/com/firebase/client/…, firebase.com/docs/java-api/javadoc/com/firebase/client/…
标签: java json object firebase firebase-realtime-database