【发布时间】:2016-04-27 17:55:20
【问题描述】:
我正在编写一个 Android 应用程序,我正在尝试通过 ID 从其 Firebase 相关表中检索 User.java 类的对象。我想知道如何从 Java 端获取它,只要我尝试了 Firebase Official docs 中所述的示例,但它们都不适合我。
以这个SO问题为例,我想要一个接口如下的方法:
public User readUser(String userId);
也就是说,我要执行:
readUser(-lnnROTBVv6FznK81k3n)
并检索关联的User 对象
谢谢
------------------------------------------ - - - - - - - - - 编辑 - - - - - - - - - - - - - - - - -------------------------------:
我设法用这段代码获得了价值:
public void retrieveUser(final String email){
firebaseUsersRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot messageSnapshot: dataSnapshot.getChildren()) {
if(messageSnapshot.getKey().equals(Email.encodeID(email))){
retrievedUser = messageSnapshot.getValue(User.class);
break;
}
}
}
@Override
public void onCancelled(FirebaseError firebaseError) { }
});
}
请不要检索用户是一个类attribute,因此是一个field。我正在从代码中访问该字段,但即使我看到它在调试器上取值,它在调用代码上为空。
有什么提示吗?我不能只在方法本身中返回它吗?:
public User retrieveUser(final String email);
谢谢
【问题讨论】:
标签: java android firebase firebase-realtime-database