私は Swift と Firebase を使用しています。以前は、次の方法を使用して Firebase トークンを取得し、それをデータベースに保存して通知を送信していました。
InstanceID.instanceID().token()
Firebase を更新したため、このメソッドは非推奨として表示されます。
'token()' is deprecated: Use instanceIDWithHandler: instead.
使い方がわかりません。instanceIDWithHandler
以下を試しましたが、トークンを取得する方法がわかりません。
func instanceID(handler: @escaping InstanceIDResultHandler){
}
助けてください。よろしくお願いします。
ベストアンサー1
登録トークンは メソッド を介して配信されます
messaging:didReceiveRegistrationToken:
。このメソッドは通常、FCM トークンを使用してアプリを起動するたびに 1 回呼び出されます。このメソッドが呼び出されるときは、次の操作を行うのが理想的です。
- 登録トークンが新しい場合は、アプリケーション サーバーに送信します。
- 登録トークンをトピックにサブスクライブします。これは、新しいサブスクリプションの場合、またはユーザーがアプリを再インストールした場合にのみ必要です。
トークンを直接取得するには、
instanceIDWithHandler:
このコールバックは、InstanceIDResult
トークンが含まれています。InstanceID の取得が何らかの理由で失敗した場合は、null 以外のエラーが提供されます。
FirebaseInstanceIDをインポートする必要があります
import FirebaseInstanceID
目標C
getTokenMethodで
[[FIRInstanceID instanceID] instanceIDWithHandler:^(FIRInstanceIDResult * _Nullable result,
NSError * _Nullable error) {
if (error != nil) {
NSLog(@"Error fetching remote instance ID: %@", error);
} else {
NSLog(@"Remote instance ID token: %@", result.token);
}
}];
迅速
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)")
}
}
アップデート
InstanceID
は廃止されました。
Messaging.messaging().token { token, error in
// Check for error. Otherwise do what you will with token here
}