首页 > 解决方案 > x 处的聊天应用 setValue 失败:DatabaseError:

问题描述

我有一个聊天应用程序,每次尝试输入消息时都会收到如下错误:

W/RepoOperation: setValue at /-LLExyceqnVtrlDcS_a failed: DatabaseError: Permission denied

我看到这是一个 Firebase 数据库配置错误,所以我进入并将其设置为测试设置:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;
    }
  }
}

但是错误不断发生。所有其他解决方案似乎都有过时的代码。

这是触发它的方法:

   private void displayChat() {

        ListView listOfMessage = findViewById(R.id.list_of_message);

        Query query = FirebaseDatabase.getInstance().getReference();
        FirebaseListOptions<Chat> options = new FirebaseListOptions.Builder<Chat>()
                .setLayout(R.layout.list_item)
                .setQuery(query, Chat.class)
                .build();

        adapter = new FirebaseListAdapter<Chat>(options) {
            @Override
            protected void populateView(View v, Chat model, int position) {
                //Get reference to the views of list_item.xml
                TextView messageText, messageUser, messageTime;
                messageText = v.findViewById(R.id.message_text);
                messageUser = v.findViewById(R.id.message_user);
                messageTime = v.findViewById(R.id.message_time);

                messageText.setText(model.getMessageText());
                messageUser.setText(model.getMessageUser());
                messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)", model.getMessageTime()));
            }
        };
        listOfMessage.setAdapter(adapter);
    }

标签: androidfirebase

解决方案


您收到此错误是因为您的规则不等于 null。这意味着除非他/她获得身份验证实例,否则没有人可以从/向您的 fireabase 数据库读取和写入数据。在此处阅读有关身份验证的信息

规则

假设您不希望对用户进行身份验证,然后将这些规则更新auth == null为读写规则

希望这会有所帮助


推荐阅读