从Firestore监听器内部移除快照监听器

7

非常简单的问题。我需要在监听器内部达到特定点后移除 firestore 快照监听器。这似乎应该很容易,但我想不出来。谢谢!

示例代码:

val registration = gameRef.addSnapshotListener { snapshot, e ->
     //code....

     //if(condition is meet){
     //    destroy this listener
     //}
}

你说的“once I hit a certain point inside of my listener”是什么意思?你能把你想要删除监听器的代码粘贴在哪里吗? - Gastón Saillén
我发布了一个例子。 - Jared
1个回答

12
假设立即返回监听器,其回调函数将在函数返回之后才被调用:
var feedback: ListenerRegistration? = null
feedback = gameRef.addSnapshotListener { snapshot, e ->
    feedback?.remove()
}

我知道。我不能从registration内部调用registration.remove()。 - Jared
如何创建一个接口,它知道自己是否在监听器内部,如果成功则只需调用 registration.remove() 来移除注册。 - Gastón Saillén
我试图在注册之外调用一个函数来移除它,但我无法从该作用域调用该函数。 - Jared
修改了我的答案,以满足编译器的要求。 - Doug Stevenson
好的,搞定了。谢谢! - Jared
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接