统一平台android取消订阅中的Firebase数据库不起作用

时间:2019-03-02 08:56:34

标签: unity3d firebase-realtime-database

我使用的版本是:

Firebase版本5.4.2和5.5.0 Unity版本2018.5.5f1

我正在使用child添加到注册或退订在编辑器上是正常的, 但建立APK后我无法退订, 每次添加数据时,它都会收到与订阅数相同的返回事件。

1 个答案:

答案 0 :(得分:1)

我遇到了类似的错误。我有这两个功能,在unity editor中可以正常工作,但在使用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之后被调用。