[英]Firebase Unity SDK MessageReceived
我正在使用Firebase Unity SDK 1.1.0在Android上进行消息传递。 我在游戏对象的Start方法中添加了TokenReceived和MessageReceived的侦听器,如快速入门教程中所述:
void Start() {
Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
}
只要应用程序处于前台,此方法就不会出现问题。 当应用程序发送到后台时,消息发送到通知托盘,当我点击通知时,我的应用程序又回到前台。 因此,到目前为止,一切都按预期进行。 但是之后,不再调用MessageReceived侦听器。 我尝试在OnApplicationPause中删除这两个侦听器,并在应用程序恢复时再次添加它们:
void OnApplicationPause(bool paused) {
if (paused) {
Firebase.Messaging.FirebaseMessaging.TokenReceived -= OnTokenReceived;
Firebase.Messaging.FirebaseMessaging.MessageReceived -= OnMessageReceived;
} else {
Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
}
}
但这没有帮助。 我还尝试了不带任何数据的纯通知消息,但这是相同的行为。 我是在做错什么还是Firebase Unity SDK仍处于测试阶段?
我可以在评论中添加它,但是不能包含图片,因此我将其包含在答案中。
该代码正确无误,当该应用程序处于活动状态,在后台甚至未启动时,我都会收到一条消息。 这是快照。
这是完整的代码:
public void Start()
{
Debug.Log("Unity Firebase App started");
Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
}
public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token)
{
Debug.Log("Received Registration Token: " + token.Token);
}
public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e)
{
Debug.Log("Received a new message from: " + e.Message.From);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.