2016-06-29 180 views
1

我有一個接收推送通知的Android應用程序。我想知道是否有一個更簡單的方法來將FCM令牌和用戶ID存儲在外部數據庫中,因爲現在我正在編寫我自己的FirebaseInstanceIdService. sendRegistrationToServer方法。像這樣存儲FCM令牌

public class TokenRegistrationService extends FirebaseInstanceIdService { 

    @Override 
    public void onTokenRefresh() { 
     // My custom manager 
    } 

    private void sendRegistrationToServer(final String FCMToken) { 
     // Here I can send FCMToken to my db 
    } 
} 

是否有任何其他方式讓我獲取令牌併發送它?

回答

0

我假設你的意思是比延伸FirebaseInstanceIdService更直接的方法。如果是這樣,那麼你應該注意到,無論你是否擴展這個類,這個令牌都會被生成。

要檢索令牌,您可以簡單地獲取InstanceID的實例並調用getToken

String token = InstanceID.getInstance().getToken(); 

還要注意的是,如果你沒有請求在FirebaseInstanceIdServiceonTokenRefresh回調令牌,getToken將返回null 如果令牌檢索進程尚未完成,將返回令牌一旦被檢索。

只要您的應用程序啓動,就會發生令牌檢索,因此如果您在第一次運行時很早就不需要令牌,則調用getToken可能就足夠了。如果您需要令牌或刷新版本,則需要延長FirebaseInstanceIdService並覆蓋onTokenRefresh

0

有沒有其他辦法讓我獲得令牌併發送它?

爲了生成登記令牌,我敢肯定,有沒有其他辦法比只使用FirebaseInstanceID服務。

將令牌發送給您的服務器時..我不知道這裏的問題是什麼。直接生成直接到您的應用程序服務器的令牌直接生成足夠嗎?或者我錯過了什麼?請闡明。