2
我正在编写一个Android应用程序,我试图从其Firebase相关表中检索ID为User.java
的对象。我想知道如何从Java端获得它,只要我尝试了Firebase Official docs中所述的示例,但它们都不适合我。通过Firebase中的ID检索Java对象
有鉴于此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);
感谢
感谢您的回答,但是,请您将完整的方法?我不确定如何检索实际用户作为对象 –
我试图将其作为一种方法,但您有一个内部类,在您从内部调用本地字段时会引起问题。但是你可以定义一个用户实例并调用这个代码来实例化它。那么你可以用这个对象做你想做的事。 –
谢谢朋友,请把它翻译成代码?我不太明白 –