Firebase InstanceID.instanceID().token() メソッドは非推奨です 質問する

Firebase InstanceID.instanceID().token() メソッドは非推奨です 質問する

私は 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
}

おすすめ記事