Firebase 未使用 'gdx-fireapp' 删除事件监听器
Firebase not removing eventlistener using 'gdx-fireapp'
我正在尝试使用 gdx-fireapp 库在 LibGdx 应用程序中实施 Firebase。
我可以成功读取、更改或删除任何数据,但是当我在获取我想要的数据后尝试删除事件侦听器时,它不会被删除。我应该调用 cancel();
来实现这一点,但什么也没发生。我什至多次尝试调用 cancel();
,但仍然无效。有人知道我该如何解决这个问题吗?
我是这样称呼它的
GdxFIRDatabase.inst()
.inReference("Rooms/")
.onDataChange(Map.class)
.then(new Consumer<Map>() {
@Override
public void accept(Map map) {
Gdx.app.log("test","onDataChangedCalled");
}
});
这是我取消它的方法:
GdxFIRDatabase.inst().inReference("Rooms/").onDataChange(Map.class).cancel();
在调用 cancel();
后,它应该在值更改时停止记录“onDataChangedCalled”
但事实并非如此。
对于遇到相同问题的任何人,您必须将侦听器存储到一个变量中,然后使用该变量调用它并取消它。
我是这样做的:
ListenerPromise<Map> Rooms;
Rooms = GdxFIRDatabase.inst().inReference("Rooms/").onDataChange(Map.class);
GdxFIRDatabase.promise()
.then(Rooms)
.then(new Consumer<Map>() {
@Override
public void accept(Map map) {
Gdx.app.log("test","onDataChangedCalled");
}
});
要取消它,只需像这样调用 cancel();
:
Rooms.cancel();
我正在尝试使用 gdx-fireapp 库在 LibGdx 应用程序中实施 Firebase。
我可以成功读取、更改或删除任何数据,但是当我在获取我想要的数据后尝试删除事件侦听器时,它不会被删除。我应该调用 cancel();
来实现这一点,但什么也没发生。我什至多次尝试调用 cancel();
,但仍然无效。有人知道我该如何解决这个问题吗?
我是这样称呼它的
GdxFIRDatabase.inst()
.inReference("Rooms/")
.onDataChange(Map.class)
.then(new Consumer<Map>() {
@Override
public void accept(Map map) {
Gdx.app.log("test","onDataChangedCalled");
}
});
这是我取消它的方法:
GdxFIRDatabase.inst().inReference("Rooms/").onDataChange(Map.class).cancel();
在调用 cancel();
后,它应该在值更改时停止记录“onDataChangedCalled”
但事实并非如此。
对于遇到相同问题的任何人,您必须将侦听器存储到一个变量中,然后使用该变量调用它并取消它。
我是这样做的:
ListenerPromise<Map> Rooms;
Rooms = GdxFIRDatabase.inst().inReference("Rooms/").onDataChange(Map.class);
GdxFIRDatabase.promise()
.then(Rooms)
.then(new Consumer<Map>() {
@Override
public void accept(Map map) {
Gdx.app.log("test","onDataChangedCalled");
}
});
要取消它,只需像这样调用 cancel();
:
Rooms.cancel();