2017-05-11 16 views
0

トークン値を取得するにはどうすればよいですか?私はfirebase、swift3、xcode8を使用していますFirebaseトークンはどのように入手できますか?

トークンの値はnilです。

import UIKit 
import Firebase 

class TestViewController: UIViewController { 
// FCM Messaging test 
    override func viewDidLoad() { 
     super.viewDidLoad() 

     let token = FIRInstanceID.instanceID().token() 

     print("Token is \(token)") 
} 

コンソールログ"Token is nil"

+0

firebaseをどこで設定しましたか? AppDelegateで? –

+0

@DarshanKarekarはい、AppDelegateにあります。このようにhttps://github.com/firebase/quickstart-ios/blob/master/messaging/MessagingExampleSwift/AppDelegate.swift – leeyuno

+0

は、appDelegate自体にトークンを格納しようとします。 NSUserDefaultsを使用していてコントローラで印刷している可能性があります。 –

答えて

0

私も同じ問題を持っていた、私は以下のコード

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
    { 
     NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.tokenRefreshNotification), name: kFIRInstanceIDTokenRefreshNotification, object: nil) 
    } 

を追加することによってそれを解決してから

func tokenRefreshNotification(notification: NSNotification) { 
    // NOTE: It can be nil here 
      if let token = FIRInstanceID.instanceID().token() { 
       refreshedToken = token 
       print("InstanceID token: \(refreshedToken)") 

     } 
    } 

場合は、コンソールをチェックあなたはトークンを取得しています。

+0

このコードはあまり意味がありません。あなたはこれをアプリケーションデリゲートに入れていますか?最初の関数の戻り変数はどこにありますか?そして、あなたは更新されたと宣言します。 –

+0

これはアプリの代理人に入れてください。リフレッシュされたトークンがnullになることがあります。トークンがリフレッシュされると、このメソッドは監視して呼び出します。リフレッシュされたトークンはグローバル変数であり、プッシュ通知用のトークンとして使用されます – DHEERAJ

関連する問題