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

标签 java android listview firebase firebase-realtime-database

我想从 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/

相关文章:

java - 有没有办法在使用java锁定窗口时获取屏幕截图?

android - 在Android中没有Play商店的自动更新应用程序

android - Listview itemclick 不起作用

ios - TItanium Studio - iOS - 带标签子的 ListView

java - 无法从服务器上的java小程序读取相关文本文件

java - JSP 文件看不到我的 CSS 文件

java - "volatile write semantics"是什么意思?

java - 从其他一些 Arraylist 的元素填充 Arraylist。

android - Facebook android API 函数 executeGraphPathRequestAsync 未给出预期结果

android listview mapview布局问题