首页 > 解决方案 > 删除子集合 Firebase 中的文档 | 科特林

问题描述

我构建了具有通知列表的应用程序,并尝试允许用户使用以下代码删除子集合中的特定文档。但它会删除子集合中的所有文档,然后应用程序崩溃了!!!

....

       itemView.setOnClickListener {
           getDocumentId()

        }

    }

            
    private fun getDocumentId() {

        db.collection("users").document(auth.currentUser?.email!!)
            .collection("notification").addSnapshotListener { snapshot, e ->

                if (e != null) {
                    Log.w(ContentValues.TAG, "Listen Failed", e)
                    return@addSnapshotListener
                }

                if (snapshot != null) {
                    val documents = snapshot.documents
                    delete(documents[position].id)
                    }
                }
            }

    private fun delete(docNotificationID: String) {
        db.collection("users").document(auth.currentUser?.email!!)
            .collection("notification").document(docNotificationID)
            .delete()
    }




}

...

标签: androidfirebasekotlingoogle-cloud-firestore

解决方案


    Process: com.qalamp.eqalamschool, PID: 12506
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.get(ArrayList.java:437)
    at com.qalamp.eqalamschool.cloudMessaging.NotificationsAdapter$NotificationsItem.getDocumentId$lambda-1(NotificationsAdapter.kt:55)
    at com.qalamp.eqalamschool.cloudMessaging.NotificationsAdapter$NotificationsItem.lambda$vNXlPl5asSXhSQAmF9DARy_I1m0(Unknown Source:0)
    at com.qalamp.eqalamschool.cloudMessaging.-$$Lambda$NotificationsAdapter$NotificationsItem$vNXlPl5asSXhSQAmF9DARy_I1m0.onEvent(Unknown Source:4)
    at com.google.firebase.firestore.Query.lambda$addSnapshotListenerInternal$2$Query(Query.java:1133)
    at com.google.firebase.firestore.-$$Lambda$Query$JWhMgzcsIac1Z-exZj1pTDRisJg.onEvent(Unknown Source:6)
    at com.google.firebase.firestore.core.AsyncEventListener.lambda$onEvent$0$AsyncEventListener(AsyncEventListener.java:42)
    at com.google.firebase.firestore.core.-$$Lambda$AsyncEventListener$DNkggu2LY54oguDvcp-QtRg6Sfg.run(Unknown Source:6)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at com.google.android.gms.internal.tasks.zzb.dispatchMessage(com.google.android.gms:play-services-tasks@@17.1.0:6)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

推荐阅读