如何从firebase实时数据库中删除?
Posted
技术标签:
【中文标题】如何从firebase实时数据库中删除?【英文标题】:How to delete from firebase realtime database? 【发布时间】:2016-09-20 07:50:14 【问题描述】:我在 android 应用中使用 Firebase 实时数据库,并且有这样的数据:
如何删除“Apple”记录(如图所示)?
根据文档,要删除您在参考上调用 removeValue() 的项目。但要获得参考,我需要孩子 id。因为是随机生成的id(-KISNx87aYigsH3ILp0D),怎么删除呢?
【问题讨论】:
感谢#Amit 和@Frank van Puffelen 的提问和回答 【参考方案1】:如果您不知道要删除的项目的键,您首先需要查询数据库以确定这些键:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Query applesQuery = ref.child("firebase-test").orderByChild("title").equalTo("Apple");
applesQuery.addListenerForSingleValueEvent(new ValueEventListener()
@Override
public void onDataChange(DataSnapshot dataSnapshot)
for (DataSnapshot appleSnapshot: dataSnapshot.getChildren())
appleSnapshot.getRef().removeValue();
@Override
public void onCancelled(DatabaseError databaseError)
Log.e(TAG, "onCancelled", databaseError.toException());
);
【讨论】:
非常感谢。这正是我想要的。 为什么我找不到DatabaseReference
?
如果有多个标题为“Apple”的节点怎么办?
我想,你写的那部分 getInstance().ref() 不小心。该代码应该是 FirebaseDatabase.getInstance().getReference();
很好,已修复。【参考方案2】:
这解决了我的问题
mPostReference = FirebaseDatabase.getInstance().getReference()
.child("quotes").child(mPostKey);
mPostReference.removeValue();
【讨论】:
【参考方案3】:如果您使用的是 firebase-admin,您可以简单地尝试一下
admin.ref(`/users/$userid`).remove()
这对我有用。
还要记得使用async
和await
语法。
【讨论】:
【参考方案4】:您可以使用此代码:
onDeletePost(id:string)
return this.http.delete(`https://my-angular8-prjt.firebaseio.com/posts/$id.json`).subscribe();
【讨论】:
你应该详细说明你的答案是做什么的【参考方案5】:根据您删除数据的方式和原因,您可以使用这些:
// Could store the push key or get it after push
String newPostKey = yourDatabase.child('firebase-test').push(
something:something
).key();
// Depends how you get to here
howYouGotHereId.parent().setValue(null);
Firebase Save Data 3.0
【讨论】:
【参考方案6】:假设 images 是您要清除的 firebase 数据库的目录。
private static DatabaseReference mDatabase;
public static void clearData()
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").setValue(null);
这里的 images 是数据库的父目录。如果要清除 images 目录中的嵌套目录 (DCIM),以便保留其中的剩余数据。
在那种情况下你可以这样做,
mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("images").child("DCIM").setValue(null);
作为对查询的回应,请尝试使用空值setValue(null)
的setValue方法从firebase数据库中清除数据
【讨论】:
以上是关于如何从firebase实时数据库中删除?的主要内容,如果未能解决你的问题,请参考以下文章
从 UI 和 Firebase 实时数据库中删除 CardView 数据?
使用 android studio java Recycler 视图从 Firebase 实时数据库中删除一个节点
Flutter - 从特定值中删除数据,Firebase 实时数据库 [重复]