📅  最后修改于: 2023-12-03 15:37:43.960000             🧑  作者: Mango
错误信息:在检索发件人 ID '570496774835' 的 FCM 令牌之前未设置 S 设备令牌。
这个错误信息通常出现在使用 Firebase Cloud Messaging(FCM)发送推送消息时。它提示用户在检索指定设备的 FCM 令牌之前未设置该设备的 S 设备令牌。
该错误可能由以下原因引起:
为了解决这个问题,您可以尝试以下解决办法:
1.检查您的 FCM 配置是否正确,并确保发件人 ID 正确设置。
2.确保您正确设置了 S 设备令牌。
3.确保要接收消息的设备已正确设置。
如果上述方法不能解决问题,请尝试使用 FCM 的其他功能或联系 FCM 支持团队取得更进一步的帮助。
// 使用 FirebaseMessaging 发送推送消息
FirebaseMessaging.getInstance().send(message)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.d(TAG, "Message sent");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "Error sending message", e);
}
});
// 确保正确设置 S 设备令牌
FirebaseMessaging.getInstance().getToken()
.addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(@NonNull Task<String> task) {
if (!task.isSuccessful()) {
Log.w(TAG, "Fetching FCM registration token failed", task.getException());
return;
}
// 确保正确设置了 S 设备令牌
FirebaseMessaging.getInstance().subscribeToTopic("news")
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "Successfully subscribed to news topic");
} else {
Log.e(TAG, "Failed to subscribe to news topic", task.getException());
}
}
});
}
});