从firebase android中删除自动关键节点

Posted

技术标签:

【中文标题】从firebase android中删除自动关键节点【英文标题】:Deleting auto key node from firebase android 【发布时间】:2020-06-15 19:15:32 【问题描述】:

我不确定我这样做是否正确,但我正在创建一个查询来获取存储在 firebase 中的自动生成的密钥。我想从 Firebase 中删除此密钥。我想知道这是否是正确的过程?就像是可以在查询中调用removeValue() 还是必须使用Datasnapshot?我的代码如下。它所做的只是获取自动生成的密钥并打印出来。

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); String removeQuery = ref.child("EventData").push().getKey(); System.out.println(removeQuery); Log.d(TAG,"Remove Query was called !!!!!!!!!!!!");

更新1

更新2

有没有简单的方法将removeQuery 设置为空?

【问题讨论】:

您正在创建 pushId。顺便说一句,您要删除什么值? @Ticherhaz 我已经更新了帖子。我想删除突出显示的部分。 你需要有你的pushId,然后你可以删除它们。 【参考方案1】:

这里:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
String removeQuery = ref.child("EventData").push().getKey();

您正在创建一个新密钥并将其存储在一个变量中。您可以在开始时这样做(将数据存储到数据库时),将数据添加到Intent

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
String removeQuery = ref.child("EventData").push().getKey();
Intent intent = new Intent(getBaseContext(), Activity.class);
intent.putExtra("key", removeQuery);
startActivity(intent);

稍后在其他活动中,您可以像这样删除:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); 
String key = getIntent().getStringExtra("key");
ref.child("EventData").child(key).removeValue();

【讨论】:

developer.android.com/reference/android/app/… get intent 是活动类中的一个方法,如果您使用的是片段,则使用 getactivity.getintent【参考方案2】:

您必须存储pushID,即M1VA...。然后你可以像这样删除。 参考这个链接:https://firebase.google.com/docs/database/android/read-and-write#add_a_completion_callback

mDatabase.child("EventData").child("M1VA....").removeValue()
        .addOnSuccessListener(new OnSuccessListener<Void>() 
            @Override
            public void onSuccess(Void aVoid) 
                // Write was successful!
                // ...
            
        )
        .addOnFailureListener(new OnFailureListener() 
            @Override
            public void onFailure(@NonNull Exception e) 
                // Write failed
                // ...
            
        );

【讨论】:

以上是关于从firebase android中删除自动关键节点的主要内容,如果未能解决你的问题,请参考以下文章

从 android 设备中删除 firebase 通知(服务器端)

从 android 应用程序中完全删除 firebase 分析

如何从 Android 应用程序中删除 Firebase 用户?

Android - 从 Firebase 数据库中删除“活动”标记

从托盘中删除 Firebase 通知(Android、Unity SDK)

如何同时更新不同的节点子节点firebase android