Firebase 数据库权限被拒绝,读/写权限设置为 true

新手上路,请多包涵

我在我的简单 Android 应用程序中写入 Firebase 数据库时遇到问题。我已将我的数据库规则设置为公开:

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

创建了一个简单的类 Message

 import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class Message {
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference dbRef = database.getReference();
    public String sender;
    public String message;

    public Message(){}

    public Message(String sender, String message) {
        this.sender = sender;
        this.message = message;
    }
}

并设置一个按钮来执行 onClick 方法 writeNewMessage 这些是重要的代码行:

 int counter = 0;

public void writeNewMessage(View view) {

        counter += 1;
        Message messageToWrite = new Message("John", "Simple message: " + counter);
        String messageId = String.valueOf(counter);

        dbRef.child("users").child(messageId).setValue(messageToWrite);
    }

运行时,我收到错误:

 W/RepoOperation: setValue at /users/1 failed: DatabaseError: Permission denied

我知道这个问题看起来很简单,而且可能会被重复,但我还没有找到任何提出这个问题的人,而他们的错误不涉及身份验证或其他一些组件。问题的简单性是最让我困惑的。

编辑: 我也发现了这个错误:

 Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"

原文由 Ben 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 291
2 个回答

这看起来像是您的 google-services.json 的问题。

确保应用程序名称和客户端 ID 与 firebase 控制台中的相同。

如果您不确定从您的项目控制台重新下载 google-services.json 并将其添加到您的项目中。

原文由 devprashant 发布,翻译遵循 CC BY-SA 3.0 许可协议

我一直在更改 firestore 规则而不是 DB …希望它对像我这样愚蠢的人有所帮助。

在此处输入图像描述

原文由 Zogrof 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题