Testing (Firebase) FCM



为了了解如何使用Firebase Cloud Messaging,我遵循以下文档:https://firebase.google.com/docs/cloud-messaging/admin/send-messages?hl=en-美国

正是我在看这一节:发送到各个设备

我可以在代码中看到,我需要registrationToken。我的问题是如何具体地得到一个?

我首先想给我自己的iPhone发一条消息,放在我的桌子上,然后发给所有注册用户的iPhone。

当我在IOS Swift工作时,你必须在你的AppDelegate.Swift文件中添加这个方法:

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken:  String) {
print("Firebase registration token: (fcmToken)")
let dataDict:[String: String] = ["token": fcmToken]
NotificationCenter.default.post(name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict)
// TODO: If necessary send token to application server.
// Note: This callback is fired at each app startup and whenever a new token is generated.
}

如果您需要直接访问令牌,请使用此:

InstanceID.instanceID().instanceID { (result, error) in
if let error = error {
print("Error fetching remote instange ID: (error)")
} else if let result = result {
print("Remote instance ID token: (result.token)")
self.instanceIDTokenMessage.text  = "Remote InstanceID token: (result.token)"
}
}

欲了解更多信息,请访问:

https://firebase.google.com/docs/cloud-messaging/ios/client

使用FCM通知时,设备会生成令牌,这些令牌每隔一段时间就会更新一次,因此,如果您需要向设备发送推送,您必须知道您的令牌,您必须实现一个继承FirebaseMessagingService的类,并覆盖onNewToken方法,每次更新设备令牌时都会在后台调用该方法。

/**
* Called if InstanceID token is updated. This may occur if the security of
* the previous token had been compromised. Note that this is called when the     InstanceID token
* is initially generated so this is where you would retrieve the token.
*/
@Override
public void onNewToken(String token) {
Log.d(TAG, "Refreshed token: " + token);
// If you want to send messages to this application instance or
// manage this apps subscriptions on the server side, send the
// Instance ID token to your app server.
sendRegistrationToServer(token);
}

建议将此令牌发送到您的服务器,以便您可以从那里向具有注册令牌的设备发送推送。如果你想强制使用第一个代币,你可以使用:

FirebaseInstanceId.getInstance().getInstanceId();

相关内容

  • 没有找到相关文章

最新更新