Firebase 数据库值不保存
Firebase Database values not saving
我正在尝试使用 Firebase Admin SDK 将值保存到 Firebase 实时数据库,但无论我做什么,none 的值都被保存了。与教程不同,我从一个完全空的数据库开始:
- 我已连接到数据库(使用 .info/connected 参考和 ref.addValueEventListener 验证)
- 安全规则允许读写
- 使用服务帐户,json 文件似乎已正确解析和加载
- 如果我创建一个根引用对象,并打印它的值,它会正确指向数据库 url
Firestore创建了一个集合和文档,如果我从Firestore视图切换到实时数据库,数据库也有这个集合和文档。
但是如果我按下根 link,文档和集合就会消失。我也经常看到 "data" 为空。数据是文件吗?一个领域?它只是说整个数据库是空的吗?有时它在 "data: null" 和 "coconut-xxx:null" 之间交替,这很奇怪。
我也试过引用 /telemetry/data 并写信给它,但那没有用。当我将 CompletionListener 添加到 setValue 时,CompletionListener 似乎从未被调用,所以连接挂起或什么?
我的代码:
String url = databaseUrl.getProtocol() + "://" + databaseUrl.getHost();
InputStream stream = getClass().getClassLoader().getResourceAsStream("firebaseCredentials.json");
GoogleCredentials credentials = GoogleCredentials.fromStream(stream);
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(credentials)
.setDatabaseUrl(url)
.build();
FirebaseApp.initializeApp(options);
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.setValueAsync("12345");
我也试过像他们在教程中那样发送地图,但这也不起作用。
我想 可能 唯一的另一件事是我在 IntelliJ Android Studio 插件中执行此操作。不过,这似乎不太可能成为问题..
感谢任何帮助。谢谢!
我发现了问题。我不知道这是怎么发生的,但我的 IntelliJ 资源文件夹中的服务帐户 JSON 文件与用于椰子项目的服务帐户不匹配...
无论如何,实时数据库现在可以正常工作了!
我正在尝试使用 Firebase Admin SDK 将值保存到 Firebase 实时数据库,但无论我做什么,none 的值都被保存了。与教程不同,我从一个完全空的数据库开始:
- 我已连接到数据库(使用 .info/connected 参考和 ref.addValueEventListener 验证)
- 安全规则允许读写
- 使用服务帐户,json 文件似乎已正确解析和加载
- 如果我创建一个根引用对象,并打印它的值,它会正确指向数据库 url
Firestore创建了一个集合和文档,如果我从Firestore视图切换到实时数据库,数据库也有这个集合和文档。
但是如果我按下根 link,文档和集合就会消失。我也经常看到 "data" 为空。数据是文件吗?一个领域?它只是说整个数据库是空的吗?有时它在 "data: null" 和 "coconut-xxx:null" 之间交替,这很奇怪。
我也试过引用 /telemetry/data 并写信给它,但那没有用。当我将 CompletionListener 添加到 setValue 时,CompletionListener 似乎从未被调用,所以连接挂起或什么?
我的代码:
String url = databaseUrl.getProtocol() + "://" + databaseUrl.getHost();
InputStream stream = getClass().getClassLoader().getResourceAsStream("firebaseCredentials.json");
GoogleCredentials credentials = GoogleCredentials.fromStream(stream);
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(credentials)
.setDatabaseUrl(url)
.build();
FirebaseApp.initializeApp(options);
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.setValueAsync("12345");
我也试过像他们在教程中那样发送地图,但这也不起作用。
我想 可能 唯一的另一件事是我在 IntelliJ Android Studio 插件中执行此操作。不过,这似乎不太可能成为问题..
感谢任何帮助。谢谢!
我发现了问题。我不知道这是怎么发生的,但我的 IntelliJ 资源文件夹中的服务帐户 JSON 文件与用于椰子项目的服务帐户不匹配...
无论如何,实时数据库现在可以正常工作了!