Firebase数据库在Unity平台Android上取消订阅无效。

3
我使用的版本是: Firebase 版本号为5.4.2和5.5.0 Unity 版本号为2018.5.5f1
我使用childAdded在编辑器中注册或取消订阅都是正常的, 但是在构建apk之后我无法取消订阅, 每次添加数据时都会接收到相同数量的返回事件。
1个回答

3

我遇到了类似的错误。 我有这两个功能在Unity编辑器中运行良好,但使用APK在Android设备上无法正常工作。

private void OnEnable ()
{
    FirebaseDatabase.DefaultInstance.GetReference("/currentGame").ValueChanged += HandleComingGameChanges;
}

private void OnDisable ()
{
    FirebaseDatabase.DefaultInstance.GetReference("/currentGame").ValueChanged -= HandleComingGameChanges;
}

因此,我刚刚添加了一个DatabaseReference变量,并在OnEnable函数中订阅它,在GameObject-Disable函数中取消订阅它,然后它开始工作。

这是伪代码的示例:

private DatabaseReference reference;
private void Awake ()
{
    reference = FirebaseDatabase.DefaultInstance.GetReference("/myReference");
}
private void OnEnable ()
{
    reference.ValueChanged += HandleChanges;
}

private void OnDisable ()
{
    reference.ValueChanged -= HandleChanges;
}

注意:我在Awake函数中初始化引用变量,因为它在OnEnable之前调用,而Start在OnEnable之后调用。

但是当我添加类似于 OrderByChild("xyz") 的过滤器时,它就无法取消订阅了。您有任何解决方法吗?谢谢。 - user3804063
@user3804063,你能分享一下你的代码片段吗? - waleed

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