2017-03-11 17 views
0

私は、Androidでユーザーの連絡先情報を格納するアプリケーションを作成しようとしています。firebaseのユーザーの情報を取得するAndroid

ユーザーが別のユーザーに送信する「連絡先カード」を作成したとき、私は、ユーザーを登録するとき、それは私が保存されたものを表示したいのですが、名前、年、数など

私はプッシュし、firebase一意のキーを作成し、FirebaseUserを作成すると、uidが作成されます。簡単には、ユーザー構造の一部としてuidを保存します。

私は現在uidを使用してそのユーザーにアクセスしようとしていますが、残念ながらuidはキーではありません。

私は照会しようとしています。 私はその後、私は

DatabaseReference ref = firebase.getinstance().getReference("user); 
ref.orderByChild("Uid").equalto(currentUser.getUid()); 

で照会してみてくださいFirebaseuser

currentUser = firebaseAuth.getCurrentUser.getUid. 

を作成するには、この正しいですか?このユーザーの実際の値を取得するために1つのvaluelistenerを追加しようとした後です。残念ながら、これはクラッシュします。誰かが私を正しい方向に向けることができますか?

+1

ログを添付してください – bc004346

+0

「私は今uidを使ってそのユーザーにアクセスしようとしていますが残念ながらuidはキーではありません」この問題を回避する代わりに、それを解決する。 UIDの下にユーザーのリストを格納することは、共通のデータ・モデルです。データモデルを修正し、問題を修正してください。 –

答えて

0

あなたは、このようなユーザー情報を保存するためのキーとして、ユーザのUIDを使用することができます。

private DatabaseReference mDatabase; 
// ... 
mDatabase = FirebaseDatabase.getInstance().getReference(); 
User user = new User(name, email); 
mDatabase.child("users").child(userUid).setValue(user); 

これが機能しない場合、あなたはこの

ValueEventListener userListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     // Get User object and use the values to update the UI 
     User user= dataSnapshot.getValue(User.class); 
     // ... 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) { 
     // Getting User failed, log a message 
     Log.w(TAG, "loadUser:onCancelled", databaseError.toException()); 
     // ... 
    } 
}; 
mDatabase.child("users").child(userUid).addValueEventListener(userListener); 

などのユーザー情報を取得することができます)

+0

ありがとうございます!私はユーザーのインデックスを変更することができるか分からなかった:) – NatBat

関連する問題