我用 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());
});
如果成功监听器和失败监听器均未触发,则应用程序可能未连接到服务器。如果您的网络连接良好,这可能是由于您的
google-services.json
文件中缺少配置造成的 - 如果您在创建数据库之前下载了该文件,则该文件将不包含数据库 URL。
解决此问题的两个选项:
google-services.json
文件,并使用此更新的文件重建您的 Android 应用。FirebaseDatabase database = FirebaseDatabase.getInstance("your database URL here");