web-dev-qa-db-ja.com

Firebase InstanceID.instanceID()。token()メソッドは廃止されました

私はSwiftおよびfirebaseで作業しています。以前は、次のメソッドを使用してfirebaseトークンを取得し、それを使用してデータベースに保存して通知を送信していました。

InstanceID.instanceID().token()

これで、Firebaseを更新したため、このメソッドは非推奨として表示されています。

'token()' is deprecated: Use instanceIDWithHandler: instead.

instanceIDWithHandlerの使用方法がわかりませんが、以下を試しましたが、トークンを取得する方法がわかりません。

func instanceID(handler: @escaping InstanceIDResultHandler){

    }

助けてください。前もって感謝します。

13
Deepak

現在の登録トークンの取得

登録トークンは、messaging:didReceiveRegistrationToken:メソッドを介して配信されます。このメソッドは、通常、アプリがFCMトークンで開始されるたびに1回呼び出されます。このメソッドが呼び出されるとき、次のことが理想的です。

  • 登録トークンが新しい場合は、アプリケーションサーバーに送信します。
  • 登録トークンをトピックにサブスクライブします。これは、新しいサブスクリプションまたはユーザーがアプリを再インストールした場合にのみ必要です。

instanceIDWithHandler:を使用して、トークンを直接取得できます。このコールバックは、トークンを含むInstanceIDResultを提供します。 InstanceIDの取得が何らかの方法で失敗した場合、null以外のエラーが提供されます。

目的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);
}
}];

Swift

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)")
 }
}
35
Anbu.Karthik