gpt4 book ai didi

java - Firebase 中嵌套节点的 onChildRemoved 监听器不起作用

转载 作者:行者123 更新时间:2023-11-30 07:12:44 26 4
gpt4 key购买 nike

enter image description here

我在“主题”节点上有一个 ChildEventListener,如下所示:

    mSubjectsFirebase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
// This does not get called when I delete the blue circled item.
}

@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

当我删除蓝色圆圈内的项目时,onChildRemoved 不会被调用。那么如何知道蓝色项是否已被删除呢?

我不想将 ChildEventListener 放到它下面的节点上,因为它是一个 push() 节点,并且会有数百个节点..

最佳答案

Firebase API documentation for Android关于子事件没有说太多。 (JavaScript documentation 更全面一些。)

但是,Android guides 之一中有更多详细信息。 :

The onChildChanged() callback is triggered any time a child node is modified. This includes any modifications to descendants of the child node.

文档没有明确指出其他节点不包括子节点的后代,但我和您的经验表明 onChildChanged() 回调是唯一触发的回调子节点的后代。

不幸的是,Android API 与 JavaScript 和 iOS API 的不同之处使得解决您的问题变得困难。

使用 JavaScript 和 iOS API,可以监听特定事件。例如,使用 JavaScript,我会调用 on("child_removed", (snapshot) => { ... })。使用 Android API,所有子事件都已合并到单个监听器中,并且据我所知,您无法添加 ChildEventListener仅监听与 onChildRemoved 函数对应的事件。

关于java - Firebase 中嵌套节点的 onChildRemoved 监听器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38936895/

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