【发布时间】:2020-04-14 01:55:23
【问题描述】:
几个小时以来,我一直在尝试并努力根据使用用户的 UID 来打印其余的用户属性。这是“userRegistration”表在我的 firebase 数据库中的样子:
UserRegistration Table on firebase
这是我尝试过的示例代码,它在尝试访问其他表中的值时实际上可以正常工作,但在尝试访问“UserRegistration”表中的数据时却无法正常工作:
public void getRestOfTheUserAttributes(){
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String the_uid = user.getUid();
DatabaseReference additionalUserInfoRef = rootRef.child("UserRegistration");
Query userQuery = additionalUserInfoRef.orderByChild("user_id").equalTo(the_uid);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Map<String, Object> map = new HashMap<>();
String userName = ds.child("username").getValue(String.class);
String userMail = ds.child("e-mail").getValue(String.class);
String nameOfUser = ds.child("name").getValue(String.class);
}
}
再次重申:如果我尝试从其他表访问数据,而不是在“UserRegistration”表上,则上面的代码可以完美运行!
另外,我创建了一个非常简单的方法来尝试获取其余值但也不起作用..
public void getUserProfile(){
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String the_id = user.getUid(); //works perfectly
String name = user.getDisplayName(); // returns null
String email = user.getEmail(); //works perfectly!
}
有人可以帮我吗?
谢谢。
【问题讨论】:
标签: java android firebase firebase-realtime-database nosql