私はAndroidアプリケーションを作成しており、Firebase関連のテーブルからIDでクラスUser.java
のオブジェクトを取得しようとしています。私はFirebase Official docsに記載されている例を試してみたが、どれも私のために働いていない限り、Java側から取得する方法を知りたい。FirebaseからIDでJavaオブジェクトを取得
例として、このSO質問を取って、私は次のインターフェイスを持つメソッドをしたい:つまり
public User readUser(String userId);
、私が実行したい:
readUser(-lnnROTBVv6FznK81k3n)
および関連User
を取得オブジェクト
ありがとうございました
----------------------------------------------- --------------- EDIT ---------------------------------- ----------------------------:
私はこのコードで値を取得するために管理:
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
です。私はコードからそのフィールドにアクセスしていますが、デバッガ上で値を受け取ります。これは、呼び出しコードでNULLになっています。
ヒント?私もこの方法でそれを入れていなかったので、ここでsoultionがあるCan'tは、私はちょうど方法自体にそれを返すので、それは?:
public User retrieveUser(final String email);
おかげ
ありがとうございます。しかし、完全な方法をお勧めしますか?実際のユーザーをオブジェクトとして取得するにはどうすればよいか分かりません –
私はメソッドとして作成しようとしましたが、内側のローカルフィールドを呼び出したときに問題を引き起こす内部クラスがあります。ただし、ユーザーインスタンスを定義し、このコードを呼び出してインスタンス化することができます。あなたはそのオブジェクトであなたが望むことをすることができます。 –
ありがとうございました。コードに翻訳してください。私はそれを得ていません –