我尝试在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
以获取此用户内的实际值之后。不幸的是这崩溃了。有人能指出我正确的方向吗?
答案 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上写下错误日志;)