2017-02-16 147 views
0

我需要從我的Android應用程序發送到FCM數據庫的註冊令牌的值。我如何訪問它以及它存儲在FCM數據庫中的位置。FCM註冊令牌

在此先感謝。

回答

0

關於如何將註冊令牌發送到數據庫的代碼片段會更好。 FCM不會自動存儲令牌,您必須執行保存邏輯。可以將它附加到您的用戶節點,並始終在onTokenRefresh()方法內更新它。類似這樣的:

@Override 
public void onTokenRefresh() { 

    String refreshToken = FirebaseInstanceId.getInstance().getToken(); 
    Log.e("FCM TokenID:", refreshToken); 
    saveToServer(refreshToken); 
} 

    void saveToServer(){ 
    //Implement save/update logic here 

} 
0

第一步:首先創建你的Android項目,並從AndroidManifest.xml複製包名稱。 假定包名是包= 「com.learn.fbc.cloudmessaging」

第二步:進入https://console.firebase.google.com/

點擊 '添加項目'

設置項目名稱

設置國家

並點按「創建項目」

第3步:點擊「向您的Android應用添加Firebase」

第四步(重要的一步):集包名(在我們的例子,應該com.learn.fbc.cloudmessaging)

第五步:點擊 '註冊應用程序'

步驟6:Downlod「google- services.json」到你的機器

第七步:複製‘谷歌services.json’到您的項目[重要一步]

8步的應用程序/文件夾。去項目級別build.gradle並設置

dependencies 
{ 
classpath 'com.google.gms:google-services:3.0.0'
  
} 

Step9。添加以下到您的應用級的build.gradle

dependencies 
{ 
    compile 'com.google.firebase:firebase-core:9.6.0' 
    compile 'com.google.firebase:firebase-messaging:9.6.0' 
} 

apply plugin: 'com.google.gms.google-services' 

步驟10:同步您的gradle這個

步驟11:擴展FirebaseInstanceIdService類如

public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { 

    private static final String TAG = 
     MyFirebaseInstanceIDService.class.getSimpleName(); 
@Override 
    public void onTokenRefresh() { 
    super.onTokenRefresh(); 
    String refreshedToken = FirebaseInstanceId.getInstance().getToken(); 

    sendRegistrationToServer(refreshedToken); 

    Log.d(TAG, "onTokenRefresh: "+refreshedToken); 

} 

private void sendRegistrationToServer(final String token) { 
    // sending gcm token to server 
    Log.d(TAG, "sendRegistrationToServer: " + token); 
} 
} 

步驟12:擴展FirebaseMessagingService類 如

public class MyFirebaseMessagingService extends FirebaseMessagingService { 
private static final String TAG = "FCM Service"; 
@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    // TODO: Handle FCM messages here. 
    // If the application is in the foreground handle both data and notification messages here. 
    // Also if you intend on generating your own notifications as a result of a received FCM 
    // message, here is where that should be initiated. 
    Log.d(TAG, "From: " + remoteMessage.getFrom()); 
    Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody()); 
} 
} 

步驟13:你的manifest文件如

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/ic_launcher_round" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 


    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 

      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
    <!-- Firebase Notifications --> 
    <service android:name=".MyFirebaseMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT" /> 
     </intent-filter> 
    </service> 

    <service android:name=".MyFirebaseInstanceIDService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 
     </intent-filter> 
    </service> 
    <!-- ./Firebase Notifications -->`` 
</application> 

步驟14聲明這兩項服務:您的設備上運行你的應用程序

步驟15:現在您可以發送來自Firebase模糊搜索的推送通知服務來測試。