android - 写入 Firebase 数据库时出现 NullPointerException
问题描述
我正在尝试向我的 Firebase 数据库中的用户添加一个项目,但每次尝试访问我想要写入数据的位置时,我都会收到 NullPointerException。该位置尚不存在(因为我需要先向其写入数据);但是,在添加“userID”部分并在其下方添加信息时,这不是问题,如下所示:
database = FirebaseDatabase.getInstance();
userReference = database.getReference("accounts");
DatabaseReference currentUserDB = userReference.child(user.getUid());
currentUserDB.child("name").setValue(name);
上面的代码部分添加了一个带有用户 ID 的键,然后在其中添加了用户名。这与我接下来要做的类似。
我想做的是添加一个名为“item”的部分,并在其中添加带有值名称的“first”。像这样。
在用户第一次单击按钮运行此代码之前,键“item”和“first”不存在。此代码也应该工作项目“第二”等等。
database = FirebaseDatabase.getInstance();
DatabaseReference dbR = database.getReference("accounts").child(uid);
reference = dbR.child("item");
DatabaseReference databaseReference = reference.child("test");
databaseReference.child("name").setValue(name);
我在这一行得到一个 NullPointerException:
DatabaseReference databaseReference = reference.child("test");
我不知道为什么。
我确信这已经以某种形式得到了回答,因为它看起来很简单,但是我还没有看到任何讨论一次将两个密钥写入数据库的地方。
任何帮助表示赞赏。如果这是重复的,我很抱歉。干杯
编辑:我知道 NullPointerException 是什么,我只是不知道为什么我会在这种情况下得到一个。两组代码非常相似,我不确定为什么第二组代码会给我一个错误。
解决方案
你应该这样写你的代码:
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
reference.child("accounts")
.child("test")
.child("item")
.child("first")
.child("name")
.setValue(name);
推荐阅读
- react-native - 在 react native 中单击按钮上的 json 对象生成 CSV 文件
- c++ - 无限循环的编译器优化
- sql - 如何使用sql创建从ic(身份证)获取年龄的函数
- r - 在使用 group_by、quantile 和其他函数时创建新列需要很长时间并且没有给出预期的结果
- android - QT android + 远程调试
- javascript - 如何在javascript中进行正确的错误处理?
- php - 如何在 php:5.6-fpm-alpine docker 容器中启用 Memcache
- reactjs - React setState 不重新渲染组件
- entity-framework - 将模型添加到实体
- vue.js - VueJS组件不刷新Axios GET请求虽然有一个关键