2017-02-16 627 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模糊搜索的推送通知服务来测试。