android - 我无法从 android 的 firebase 数据库中获取用户数据?
问题描述
我的数据库结构是:rootNode->node1->Uid->RandomId(我从 push.getKey() 方法获得)然后是我的数据->(姓名、电子邮件、电话)
projectName:
SampleUsers
Uid
RandomKey1(i get this random key by push.getKey() method)
Name : User1
Email : user@email.com
Phone : +1234567890
RandomKey2
Name : User1
Email : user@email.com
Phone : +1234567890
我想在用户登录时在他的个人资料页面中显示用户详细信息。但我无法得到那个随机密钥;
mUserRef = firebaseDatabase.getReference("Users").child(mAuth.getCurrentUser().getUid());
解决方案
要显示给定快照的所有子节点,请遍历DataSnapshot.getChildren()
. 例如:
DatabaseReference userRef = firebaseDatabase.getReference("Users").child(mAuth.getCurrentUser().getUid());
userRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
System.out.println(childSnapshot.getKey()); // the push ID
System.out.println(childSnapshot.child("Name").getValue(String.class));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
}
推荐阅读
- r - 无法在 R 4.0.5 中加载任何线索?
- amazon-web-services - 无法在 ElasticSearch AWS 上禁用字段索引
- postman - 使用 Newman 从响应正文中提取参数值
- java - 如何在 ColdFusion 中使用 jargon2-api?
- docker - SIOCDDRT:不允许操作
- c - 启用分页后出现页面错误?操作系统开发
- mysql - 基于同一表中的另一列更新列中的值
- griddb - 在 Windows 平台上安装“GridDB python 客户端”时在哪里设置 SWIG_RESOURCE 的路径
- python - TensorBoard tf.cond 性能
- c# - 将 C++ DLL 指向函数的指针导入 C#