Java datasnapshot中的Nullpointer exeption字符串出错

Java datasnapshot中的Nullpointer exeption字符串出错,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我知道过去有人问过这个问题。我尝试过他们几乎所有的解决方案,但都不适用于我。很抱歉再次问这个问题。但是有人能帮我纠正这个错误吗 这是我的密码 错误出现在Datasnapshot字符串上。如果说它位于空对象引用上 这是航海日志 这是我的数据库 你需要改变 DatabaseReference databaseReference = firebaseDatabase.getReference().child(firebaseUser.getUid()); 到 您指向了错误的节点。不包含所需数据的

我知道过去有人问过这个问题。我尝试过他们几乎所有的解决方案,但都不适用于我。很抱歉再次问这个问题。但是有人能帮我纠正这个错误吗

这是我的密码

错误出现在Datasnapshot字符串上。如果说它位于空对象引用上

这是航海日志

这是我的数据库

你需要改变

DatabaseReference databaseReference = firebaseDatabase.getReference().child(firebaseUser.getUid());

您指向了错误的节点。不包含所需数据的

注意:

您不需要将
push_id
存储为
id

您只需获取它,而无需将其存储在内部

String userIDstr = dataSnapshot.getKey();
你需要改变

DatabaseReference databaseReference = firebaseDatabase.getReference().child(firebaseUser.getUid());

您指向了错误的节点。不包含所需数据的

注意:

您不需要将
push_id
存储为
id

您只需获取它,而无需将其存储在内部

String userIDstr = dataSnapshot.getKey();
你需要改变

DatabaseReference databaseReference = firebaseDatabase.getReference().child(firebaseUser.getUid())

而不是

String userEmailstr = dataSnapshot.child("email").getValue().toString();
使用

你需要改变

DatabaseReference databaseReference = firebaseDatabase.getReference().child(firebaseUser.getUid())

而不是

String userEmailstr = dataSnapshot.child("email").getValue().toString();
使用

使用时:

.child(firebaseUser.getUid())
这意味着您正在将来自Firebase身份验证过程的用户id传递给子方法。但是传递此id没有帮助,因为在您的数据库中,我看到您有一个由
push()
方法生成的id和来自
FirebaseUser
对象的id

因此,要解决这个问题,您可以向
子()方法传递正确的id,即
-LS3X。。。6Meg
或者通过删除
push()
调用并使用类似以下内容来更改将用户添加到数据库的方式:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.child("Accounts").child(uid).setValue(userObject);
第二种解决方案是推荐的解决方案。另外,请不要忘记添加您的参考资料中现在缺少的
帐户
额外的子项。

当您使用:

.child(firebaseUser.getUid())
这意味着您正在将来自Firebase身份验证过程的用户id传递给子方法。但是传递此id没有帮助,因为在您的数据库中,我看到您有一个由
push()
方法生成的id和来自
FirebaseUser
对象的id

因此,要解决这个问题,您可以向
子()方法传递正确的id,即
-LS3X。。。6Meg
或者通过删除
push()
调用并使用类似以下内容来更改将用户添加到数据库的方式:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.child("Accounts").child(uid).setValue(userObject);


第二种解决方案是推荐的解决方案。另外,请不要忘记添加引用中当前缺少的
帐户
额外子项。

这段代码中的第60行是什么?字符串userNamestr=dataSnapshot.child(“name”).getValue().toString();显示您的数据库。我怀疑您的密钥
名称
不可用或数据库中有其他名称…我编辑了它。检查它。这段代码的第60行是什么?字符串userNamestr=dataSnapshot.child(“name”).getValue().toString();显示您的数据库。我怀疑您的密钥
名称
不可用或数据库中有其他名称…我编辑了它。检查它。感谢您的帮助,但仍然是相同的错误。这应该可以工作。您是否已将
google service.json
添加到您的
应用程序文件夹中?是。我已经这样做了,下载了一个新的google-service.json并将其复制到我的应用程序文件夹中。你能调试它吗。检查它在哪里抛出错误。我不知道如何。很抱歉刚刚开始编写代码和firebase。感谢您的帮助,但仍然是相同的错误。这应该可以工作。您是否已将
google service.json
添加到您的
应用程序文件夹中?是。我已经这样做了,下载了一个新的google-service.json并将其复制到我的应用程序文件夹中。你能调试它吗。检查它在哪里抛出错误。我不知道如何。很抱歉刚刚开始编写代码和firebase。感谢您的帮助。错误已消失,但应用程序中没有显示文本。请确保firebase数据库中有该用户ID的子项和值。感谢帮助。错误已消失,但应用程序中没有显示文本。请确保您的firebase数据库中有该用户ID的子项和值非常感谢!这个问题已经困扰了好几天了。非常感谢!这个问题已经困扰了好几天了。