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