android - 如何修复 dataSnapshot.getValue() 检索空值?
问题描述
好的,所以我试图从我的数据库中提取用户 ID 下的单个用户的电子邮件,它检索到 null。
userUID 是 authUID。
当我将行更改为: String value = dataSnapshot.child("email").getKey();
它检索正确的密钥,因此据我所知,我站在数据库的正确位置。
myDatabaseRef.child(userUID).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
try{
String value = dataSnapshot.child("email").getValue(String.class);
//String value = dataSnapshot.child("email").getKey(); gets email
Log.d("TAG", "onDataChange: " + value);
}
catch (Exception ex){
Log.d("PROBLEM",ex.toString());
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
我得到的错误:
2019-07-30 10:42:29.566 14673-14673/com.example.h210.housecommitteemanage D/TAG: onDataChange: null
解决方案
试试这个,下面的代码将获取所有用户的电子邮件:
FirebaseDatabase.getInstance().getReference("DataUsers").child("Users").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
try{
Iterable<DataSnapshot> snapshotIterable = dataSnapshot.getChildren();
for (DataSnapshot aSnapshotIterable : snapshotIterable) {
String value = aSnapshotIterable.child("email").getValue(String.class);
Log.e(Constants.TAG, "Users email : " + value);
}
}catch (Exception ex){
Log.e("PROBLEM",ex.toString());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
推荐阅读
- python - pytest-django:这是用参数测试视图的正确方法吗?
- machine-learning - 绘制一个表达 (x1andx2)orx3 的 McCulloch-Pitts-Neuron
- python - 无法启动 file.app 但可以启动 file.app/Contents/MacOS/file
- javascript - 如何对数组的 JavaScript 数组进行冒泡排序
- javascript - 如果工作人员忙,是否仍会收到发送给网络工作人员的消息?
- ios - 在 NavigationView 的隐藏导航栏前面放置可交互视图
- php - 正则表达式中的锚点
- tensorflow - 如何从生成器创建固定长度的 tf.Dataset?
- php - 在 lighthouse-php 中,如何为具有不同名称的模型定义类型?
- python - Tkinter:绑定
事件到整个窗口(但不是所有小部件)