首页 > 解决方案 > 无法在 Firebase 数据库中保存消息

问题描述

我正在尝试在 firebase 数据库中保存一个消息对象,当我运行代码时我没有收到任何错误,一切看起来都很好,但是当我去 firebase 网站时,数据库中没有任何内容

public class MainChatActivity extends AppCompatActivity {
    private DatabaseReference mDatabaseReference;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_chat);

        mDatabaseReference = FirebaseDatabase.getInstance().getReference();

        mSendButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                sendMessage();
            }
        });
    }

    private void sendMessage() {
        String input = mInputText.getText().toString();
        if(!input.equals("")){
            InstantMessage chat=new InstantMessage(input, mDisplayName);
            mDatabaseReference.child("children").push().setValue(chat);
            mInputText.setText("");
        }
    }
}

public class InstantMessage {
    private String message;
    private String author;

    public InstantMessage(String message, String author) {
        this.message = message;
        this.author = author;
    }

    public InstantMessage() {
    }

    public String getMessage() {
        return message;
    }

    public String getAuthor() {
        return author;
    }
}

我希望将带有作者姓名的消息保存在firebase中名为“messages”的目录中,但这并没有发生

标签: javaandroidfirebasefirebase-realtime-database

解决方案


将您的 Firebase 数据库规则更改为以下内容:

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

它允许在任何条件下对所有用户进行读/写访问。

警告:切勿在生产中使用此规则集;它允许任何人覆盖您的整个数据库。


推荐阅读