【问题标题】:Data is not being written in Firebase Realtime Database from Android App数据未从 Android 应用程序写入 Firebase 实时数据库
【发布时间】:2018-01-12 15:43:28
【问题描述】:

我想从 Android 向 Firebase 实时数据库中写入数据。我做了以下事情。

  1. 在 firebase 中创建项目

  2. 配置并下载json文件并粘贴到app目录中

  3. 其他的都做了。

  4. 正确编辑了规则

然后我尝试运行文档中提供的最简单的代码

FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("message");

    myRef.setValue("Hello, World!");

还是不行。数据库仍然显示为空。 有人请帮忙。 谢谢

【问题讨论】:

  • 您是否在日志中看到任何错误,例如“permission denied”?
  • 默认情况下,规则设置为只允许经过身份验证的用户读写。
  • 您找到解决方案了吗?

标签: android firebase firebase-realtime-database


【解决方案1】:

检查数据库设置中的规则。 默认情况下,只允许对授权用户进行读写操作。 将其更改为:

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

也许这可以解决你的问题。

【讨论】:

  • 我按照你说的修改了规则,还是不行
【解决方案2】:

您可以添加以下代码来测试发生了什么:

dataReference.setValue(value, new DatabaseReference.CompletionListener() {
    @Override
    public void onComplete(DatabaseError databaseError, DatabaseReference dataReference) {

    }
});

【讨论】:

  • 对我来说,我在 onComplete 之后添加了一个 Toast,它没有显示任何内容
【解决方案3】:

改变规则

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

【讨论】:

  • 虽然这是一个的答案,但它不是一个很好的答案。你可以暂时把你的规则改成这样,请不要这样。
【解决方案4】:

检查你的读写规则

“规则”: ".read": "auth == null", ".write": "auth == null"

此规则仅在用户未登录时才允许。

写入数据库 FirebaseDatabase.getInstance().getReference().child("users").setValue("value");

【讨论】:

    【解决方案5】:

    这里有一些代码可以尝试:

    private DatabaseReference mDatabase;
    mDatabase = FirebaseDatabase.getInstance().getReference();
    mDatabase.child("messages").setValue("Hello, World");
    

    如果这不起作用,那么要么存在规则问题(我认为您已解决),要么存在应用中的 Firebase 初始化问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2021-08-23
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      • 2019-03-22
      相关资源
      最近更新 更多