我需要从我的Android应用程序发送到FCM数据库的注册令牌的值。如何访问它以及它存储在FCM数据库中的哪个位置。
提前致谢。
答案 0 :(得分:1)
步骤1:首先创建您的Android项目,然后从AndroidManifest.xml复制包名称。 假设包名是package =" com.learn.fbc.cloudmessaging"
第2步:转到https://console.firebase.google.com/
点击“添加项目'
”设置项目名称
设置国家/地区
点击“创建项目”
第3步:点击“将Firebase添加到您的Android应用”'
Step4(重要步骤):设置包名(在我们的例子中,它应该是com.learn.fbc.cloudmessaging)
第5步:点击“注册应用”
Step6:Downlod' google-services.json'到你的机器
第7步:复制' google-services.json'到项目的app /文件夹[重要步骤]
步骤8。转到项目级build.gradle并设置
dependencies
{
classpath 'com.google.gms:google-services:3.0.0'
}
步骤9。将以下内容添加到您的应用级别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类 e.g
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:向清单文件声明两种服务,例如
<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云端服务发送推送通知进行测试。
答案 1 :(得分: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
}