gpt4 book ai didi

android - 未调用 Firebase Cloud Messaging onMessageSent

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:39 24 4
gpt4 key购买 nike

我正在从 GCM 切换到 FCM。我只用它通过 FCM 向我的服务器发送消息。我扩展了 FirebaseMessagingService 来实现回调。例如,onSendError() 工作得很好,但是 onMessageSent() 永远不会执行...我不知道它是否相关,但我发送了 'ack ' 收到消息时来 self 的服务器的节。

我的 FirebaseMessegingService 类:

public class FCMListenerService extends FirebaseMessagingService {

public FCMListenerService() {
super();
}

@Override
public void onDeletedMessages() {
Log.d("wouter", "onDeletedMessages: ");
super.onDeletedMessages();
}

@Override
public void onMessageSent(String msgID) {
Log.e("wouter", "##########onMessageSent: " + msgID );
super.onMessageSent(msgID);
Database database = new Database(this);
database.confirmFCMMessageSend(msgID);
database.closeDatabase();
}

@Override
public void onSendError(String msgID, Exception exception) {
Log.e("wouter", "onSendError ", exception );
super.onSendError(msgID, exception);
Database database = new Database(this);
database.eraseFCMMsgIDFromFGMMessageLog(msgID);
database.closeDatabase();
}

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
}
}

以及我的 list 的相关部分:

<service android:name=".FCM.FCMListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>

最佳答案

this answer的第二部分有同样的问题帮我修好了。基本上,您必须在发送的消息中设置 TTL。像这样的东西:

RemoteMessage myMessage = new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com").setMessageId(id).setData(data).setTtl(86400).build();

关于android - 未调用 Firebase Cloud Messaging onMessageSent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37471510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com