从firebase Android获取用户信息

时间:2017-03-11 21:46:09

标签: android firebase firebase-realtime-database

我尝试在Android上创建一个存储用户联系信息的应用。

当用户创建"联系卡时,#34;要发送给其他用户,我希望在注册用户,姓名,年份,号码等时显示我存储的内容。

当我推送时,firebase会创建一个唯一的密钥,当我创建FirebaseUser时,它会创建一个uid。为了方便起见,我将uid保存为用户结构的一部分。

我现在正试图使用​​uid访问该用户,不幸的是,uid不是关键。

所以,我试图查询。 我创建了一个Firebaseuser

currentUser = firebaseAuth.getCurrentUser.getUid.

然后我尝试按

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

这是对的吗?在我尝试添加单个valuelistener以获取此用户内的实际值之后。不幸的是这崩溃了。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分: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);

如果这不起作用,请在OP上写下错误日志;)