【发布时间】:2021-02-18 12:53:01
【问题描述】:
我创建了一个小应用程序,它应该从 Firebase 实时数据库中获取数据。问题是,我会在从 Firebase 获取信息后删除所有数据。我已经搜索了解决方案,但我找到的所有解决方案都不适合我。我希望你能帮我解决我的问题。
class Example {
public static Object data1;
public static void main(String[] args) throws IOException, InterruptedException {
FileInputStream serviceAccount = new FileInputStream("./google-services.json");
FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://example.firebaseio.com")
.build();
CountDownLatch latch = new CountDownLatch(2);
Query reference1 = FirebaseDatabase.getInstance().getReference("/\"UserName\"/"data1");
ref1.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot datasnapshot) {
data1 = datasnapshot.getValue();
System.out.println(data1);
}
@Override
public void onCancelled(DatabaseError databaseError) {
};
});
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("/\"UserName\"");
databaseReference.child("/\"data1\"");
databaseReference.removeValue();
System.out.println("Successfully deleted user");
}
【问题讨论】:
-
您共享的代码有什么问题?具体来说:当您在调试器中单步执行此代码时,哪一行没有按照您的预期执行?
-
对不起,我没有看到你的评论,我在这里发布的内容很好,但我试图找到一个解决方案,在我从 Firebase 检索数据后删除 Firebase 中的数据。我已经编辑了代码,最后一部分不起作用。
-
这个字符串转义看起来非常不寻常:
.getReference("/\"UserName\"/"data1")。你确定这是需要的吗?你可以添加你的 JSON 样本(作为文本,请不要截图)?您可以通过单击 Firebase Database console 的溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。 -
我使用 Intellij,所以它适用于我的以下方法:
public static void removeAllExample() { FirebaseDatabase.getInstance().getReference("User Name").removeValueAsync(); System.out.println("User successfully deleted!!"); }问题是,它只适用于这个命令:“removeValueAsync”,但我寻找另一种方法来做同样的事情. -
所以我将解释更多我需要什么,我有一些任务可以从 Firebase 检索数据并将其写入其他空间,但是因为它们都运行异步,所以应该在彼此之后运行的任务异步运行我得到了我不想要的结果,可以运行同步任务吗?
标签: java firebase firebase-realtime-database