【问题标题】:Unity Firebase subscribe/unsubscribe from topic issue on reloading appUnity Firebase 在重新加载应用程序时订阅/取消订阅主题问题
【发布时间】:2021-10-09 01:21:29
【问题描述】:

我有一个使用 Firebase for Unity 的简单应用程序,用户在其中动态订阅/取消订阅主题,他将在其中收到每个所述主题的推送通知。

这是处理它的代码:

public class FBManager : MonoBehaviour {
    private async void Start() {
        var dependencyStatus = await Firebase.FirebaseApp.CheckAndFixDependenciesAsync();
        Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
        Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
    }

    public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
        UnityEngine.Debug.Log("Received Registration Token: " + token.Token);
    }

    public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
        UnityEngine.Debug.Log("Received a new message from: " + e.Message.From);
    }

    public async void Subscribe(string topic) {
        print("Subbing " + topic);
        await Firebase.Messaging.FirebaseMessaging.SubscribeAsync(topic);
        print("Subbed " + topic);
    }

    public async void Unsubscribe(string topic) {
        print("unSubbing " + topic);
        await Firebase.Messaging.FirebaseMessaging.UnsubscribeAsync(topic);
        print("unSubbed " + topic);
    }
}

订阅/取消订阅方法是从应用程序中的按钮调用的,此代码在应用程序的第一个会话期间运行良好。

但是,在关闭/最小化和重新打开应用程序时,这两种异步方法 (SubscribeAsync/UnsubscribeAsync) 都不会完成,从而使应用程序处于损坏状态,在我第一次打开它后我无法更改其订阅。 由于 Firebase API 从不抛出任何错误/消息,我不确定该怎么做,因为这些方法只是简单地执行并且永远不会完成。

我尝试了一些协程的变体,并使用了相同方法的过时版本(订阅/取消订阅),这两种方法都有相同的问题(重新打开应用程序后不起作用)。 我用“adb logcat”检查了控制台输出,Firebase 没有抛出任何错误,订阅/取消订阅的执行都只是在第一次打印时停止。

有人在图书馆遇到过此类问题吗? Firebase 文档有些乏善可陈,经过几天的研究,我没有在网上找到任何相关的问题,而且我发现的一点是大约 2 年前的内容,当时他们仍在使用已弃用的 SubscribeFromTopic/UnsubscribeFromTopic。因此,我们将不胜感激任何有关此主题的帮助。

【问题讨论】:

    标签: c# firebase unity3d firebase-cloud-messaging


    【解决方案1】:

    经过几次尝试,我发现了问题所在。 出于某种原因,每次重新打开应用时,您都需要“刷新”您的令牌才能再次使用订阅/取消订阅。

    “刷新”是指您需要删除令牌,然后通过 DeleteTokenAsync/GetTokenAsync 方法获取新令牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      相关资源
      最近更新 更多