我最近开始从旧版 Firebase API 迁移到新版 Google Firebase。我已经关注了Getting Started Guide并能够创建管理员访问帐户并生成 JSON 文件,并使用示例代码成功(我认为)初始化 SDK:
FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount(new FileInputStream("C:\\FileStructure\\Test Dev Project-59ee6eb5842a.json"))
.setDatabaseUrl("https://test-dev-project-96fd5.firebaseio.com/")
.build();
FirebaseApp.initializeApp(options);
我的问题是将任何信息推送到我的数据库中。我运行该应用程序(在 NetBeans 中)并且运行没有任何问题。
// Create a database based on the initialized Firebase App
FirebaseDatabase database = FirebaseDatabase.getInstance();
// Reference to the root of the database created.
DatabaseReference ref = database.getReference();
// Create a child to the root node
DatabaseReference dataRef = ref.child("Hello World");
dataRef.setValue("I'm writing data", new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
if (databaseError != null) {
System.out.println("Data could not be saved " + databaseError.getMessage());
} else {
System.out.println("Data saved successfully.");
}
}
});
据我了解,代码根据实例化的App绘制数据库引用,setValue()、push()、update()、事务数据将数据推送回数据库。
我实际上已经复制并粘贴了数据directly from the new API reference page on saving data并且数据仍然没有出现在我的控制台上。我还可以补充一点,我的控制台甚至无法确认我是否正确或错误地推送了数据。
我感觉好像我忘记了一些小事情,并且我不确定我是否正确创建了我的引用。
我对在 Stack Overflow 上发帖还很陌生,所以请告知我是否遗漏了重要数据或正确发布了某些内容。
感谢您抽出宝贵的时间,伙计们。
最佳答案
来自 Frank van Puffelen 的有效回复:
最常见的原因是您的 Java 程序在 Firebase 客户端将数据发送到数据库之前退出。您可以通过将 Thread.sleep(10000) 添加到程序末尾来轻松验证这是否是原因
但是,我也注意到该线程是重复的。原问题可参见here 。虽然此问题涉及转型后的 Google 旗下 Firebase,但解决方案是相同的。
关于Firebase 中的 Java 服务器未将信息推送到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37466958/