【问题标题】:Firebase Database not writing dataFirebase 数据库不写入数据
【发布时间】:2017-10-28 06:37:54
【问题描述】:

我正在尝试学习如何将我的 android 应用程序连接到 firebase 数据库。我试过以下代码:

mDatabase =  FirebaseDatabase.getInstance().getReference();
productCloudEndPoint = mDatabase.child("Sample");
productCloudEndPoint.push().setValue("Hello World");

但是,当我查看 Firebase 控制台时,什么都没有写入。我也制定了规则。

{
    "rules": {
    ".read": true,
    ".write": true
    }
}

我错过了什么吗?谢谢

【问题讨论】:

  • 你会试试 productCloudEndPoint.push().child("value").setValue("Hello World");
  • 很难说这段代码出了什么问题。您的 logcat 是否显示任何相关的警告/错误消息?
  • 您是否在通过身份验证时尝试执行此代码?也尝试改变:productCloudEndPoint.push().setValue("Hello World");至:productCloudEndPoint.setValue("Hello World");

标签: android firebase firebase-realtime-database


【解决方案1】:

我遇到了同样的问题,问题是我使用的是模拟器。您必须使用物理设备。

【讨论】:

    【解决方案2】:

    在使用 set() 方法时不要使用 push 方法,set() 方法会将值设置为引用。

    例如:

    <database-ref>/users/{UserId}/
    username: {name}
    

    查询将是:

    mDatabase.child("users").child(userId).child("username").setValue(name);
    

    在你的情况下:

    mDB.child("sample").setValue("Hello World");
    

    虽然 push 方法用于发布新的自定义对象,但 Firebase 会生成唯一 ID 并保存到此类对象的列表中。 注意: Push() 方法用于 javaScript。

    示例: 您有具有类似

    属性的用户对象
    Class User{
    String name;
    String email;
    }
    

    要保存这样的对象,你可以简单地使用 push() 方法。 Firebase 将使用自动生成的唯一 ID 保存它。

    <db-ref>/users/{uniqueId}/
    

    对于 JAVA:等效方法是 put() 方法。

    【讨论】:

      猜你喜欢
      • 2022-01-18
      • 2017-07-16
      • 2017-05-07
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 1970-01-01
      相关资源
      最近更新 更多