无法将数据写入firebase实时数据库

问题描述 投票:0回答:1

我用 java 创建了一个新的 android studio 项目,并按照 firebase 实时数据库教程和 firebase 文档进行设置。我尝试了一切,甚至重新创建了项目,但似乎没有值写入实时数据库。我不知道该怎么办。

MainActivity.java

package com.example.firebase;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

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

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Write a message to the database
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference("message");
        Log.i("MainActivity", "onCreate: " + myRef.toString());
        myRef.setValue("Hello, World!");
        // DatabaseReference myRef = database.getReference();
        // myRef.child("message").setValue("Hello, World!");
    }
}

Firebase 安全规则

{
  "rules": {
    // ".read": "now < 1705276800000",  // 2024-1-15
    ".read": true,
    // ".write": "now < 1705276800000",  // 2024-1-15
    ".write": true
  }
}

这就是我的 firebase 实时数据库的样子(我手动将值放在那里):

应用程序运行并且没有错误被抛出到控制台,所以我认为问题不在于依赖项。

在 MainActivity 中添加了以下内容

myRef.setValue("Hello, World!").addOnSuccessListener(aVoid -> {
    Log.i("MainActivity", "onCreate: " + "Success");
}).addOnFailureListener(e -> {
    Log.i("MainActivity", "onCreate: " + e.getMessage());
});

Logcat 没有显示任何有用的内容

java android firebase firebase-realtime-database
1个回答
0
投票

如果成功监听器和失败监听器均未触发,则应用程序可能未连接到服务器。如果您的网络连接良好,这可能是由于您的

google-services.json
文件中缺少配置造成的 - 如果您在创建数据库之前下载了该文件,则该文件将不包含数据库 URL。

解决此问题的两个选项:

  • 从 Firebase 控制台重新下载
    google-services.json
    文件,并使用此更新的文件重建您的 Android 应用。
  • 在此处的代码中指定数据库 URL:
    FirebaseDatabase database = FirebaseDatabase.getInstance("your database URL here");
    
© www.soinside.com 2019 - 2024. All rights reserved.