来自Android应用程序的数据未被写入Firebase实时数据库

5
我希望能从Android设备向Firebase实时数据库写入数据。我的操作步骤如下:
  1. 在Firebase中创建了项目。

  2. 配置并下载JSON文件,然后粘贴到应用程序目录中。

  3. 进行了其他所有必要的操作。

  4. 正确编辑了规则。

接着,我尝试运行文档中提供的最简单的代码。

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

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

仍然不起作用。数据库仍然为空。 有人请帮忙。 谢谢。

你在日志中看到任何错误,比如“权限被拒绝”吗? - Adam Piziak
默认情况下,规则设置为仅允许经过身份验证的用户进行读写操作。 - Jay
你找到解决方案了吗? - MrPool
5个回答

0

检查您的读写规则

"rules": ".read": "auth == null", ".write": "auth == null"

此规则仅允许未登录的用户进行操作。

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


0

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

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

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


我按照你说的改变了规则,但仍然不起作用。 - Eco4ndly

0
你可以添加以下代码来测试发生了什么事情:
dataReference.setValue(value, new DatabaseReference.CompletionListener() {
    @Override
    public void onComplete(DatabaseError databaseError, DatabaseReference dataReference) {

    }
});

对我来说,在onComplete之后我添加了一个Toast,但它没有显示任何内容。 - Mohammed Abid Nafi

0

更改规则

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

虽然这是一个答案,但并不是一个好的答案。您可以暂时更改您的规则,但请不要保持这种状态。 - Jay

0
这里有一些代码可以尝试:
private DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("messages").setValue("Hello, World");

如果这样做不起作用,那么要么存在规则问题(我认为你已经解决了),要么是应用程序中的 Firebase 初始化问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接