gpt4 book ai didi

java - Android Firebase 删除删除值时崩溃的应用程序

转载 作者:行者123 更新时间:2023-12-02 02:31:14 24 4
gpt4 key购买 nike

我想从 Firebase 的 ListView 中删除数据。

 lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, final View view, final int position, long id) {
mDatabaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
DatabaseReference s =snapshot.getRef();
mDatabaseRef.child(String.valueOf(s)).removeValue();
}
}

应用程序在此行崩溃:mDatabaseRef.child(String.valueOf(s)).removeValue();我还使用 setValue(null);

delete only this value

最佳答案

要真正从 Firebase 数据库中删除子项,您需要将 String 作为参数传递给 child() 方法,该 String 代表数据库中的键,位于特定位置。

snapshot.getRef() 实际上返回已附加监听器的位置的完整引用。

String.valueOf(s) 返回引用的 String 表示形式。为了删除一个值,您需要使用实际的字符串。

我们举个例子。您有以下路径:

Firebase-root/users/uid/name

其中 name 的值为 John。为了删除名称,您需要使用以下代码行:

FirebaseDatabase.getInstance().getReference()
.child("users")
.child("uid")
.child("name")
.removeValue();

而不是这行代码:

FirebaseDatabase.getInstance().getReference()
.child("users")
.child("uid")
.child("Firebase-root/users/uid/name")
.removeValue();

这就是您尝试使用代码执行的操作。

根据您的新更新,为了删除该记录,当您推送该随 secret 钥时,您需要首先将该 key 存储在如下变量中:

String key = yourRef.push().getKey(); //Store the pushed key
FirebaseDatabase.getInstance().getReference()
.child("Hamza")
.child(key)
.removeValue();

关于java - Android Firebase 删除删除值时崩溃的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47055366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com