java - 从 Firebase 检索数据时出现 NullPointerException

标签 java android firebase firebase-realtime-database

我正在尝试将 TextView 设置为当前用户用户名,但收到此错误:

 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference

这就是我检索用户名的方式:

mDatabase.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

               String name= dataSnapshot.child("username").getValue().toString();
               username.setText(name);

           }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.w("ProfileActivity", "load:onCancelled", databaseError.toException());

        }
    });

这是我的用户节点:

users firebase

这个:

 mCurrUser = FirebaseAuth.getInstance().getCurrentUser();
 Uid = mCurrUser.getUid();
 mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(Uid);

最佳答案

dataSnapshot.child("username").getValue() 返回 null,这意味着您的查询位置没有名为“username”的子项。从您的评论来看,听起来您正在像这样构建 mDatabase:

mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(Uid);

这里的问题是您的代码正在访问带有大写 U 的“Users”,但是您在数据库中显示的数据存在于带有小写 u 的“users”处。

关于java - 从 Firebase 检索数据时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60441127/

相关文章:

java - 如何使用Firestore仅存储当前登录用户的数据

firebase - Firestore查询无法获取文档

javascript - Firebase 数据库没有响应

java - connect(localhost) 抛出异常,connect(私有(private)地址) 阻塞

android - 不适用于 Xtify 入门示例

android - 无法使用 Firebase Analytic 4.1.0 和 Admob 3.7.0 构建 Apk

android - 根据Id移除ObjectBox中的数据

java - 如何使用自定义列表适配器检查 ListView 是否为空

java - 泛型和转换为正确的类型

java - 如何从Android中的 fragment 启动相机