从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 数据库中删除“活动”标记