【问题标题】:NullPointerException when writing to Firebase database写入 Firebase 数据库时出现 NullPointerException
【发布时间】:2019-01-10 12:36:21
【问题描述】:

我正在尝试向我的 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 是什么,我只是不知道为什么我会在这种情况下得到一个。两组代码非常相似,我不确定为什么第二组代码会给我一个错误。

【问题讨论】:

  • 请添加初始化这些对象的顺序。
  • 不完全重复。我知道 NPE 是什么我只是不知道为什么我没有得到一个。
  • 那是它们被初始化的顺序。我不确定我是否理解这个问题?
  • 我不认为DatabaseReference.child() 应该返回null。你能显示整个错误消息+堆栈跟踪吗?

标签: android firebase firebase-realtime-database nullpointerexception


【解决方案1】:

你应该这样写你的代码:

DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
    reference.child("accounts")
            .child("test")
            .child("item")
            .child("first")
            .child("name")
            .setValue(name);

【讨论】:

    【解决方案2】:

    如果可能的话,把你的代码放在这里,它会有所帮助。

    我认为如果“item”和“first”不存在,则不能将其用作参考,因为节点不存在。

    你需要先使用reference = dbR.setValue("item"),然后才能使用use as ref。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多