首先,您需要创建一个扩展
FirebaseInstanceIdService
的
FirebaseIDService
类。
public class FirebaseIDService extends FirebaseInstanceIdService {
private static final String TAG = "FirebaseIDService";
private SharedPreferences sharePrefs;
private SharedPreferences.Editor edit;
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Intent intent = new Intent(FirebaseIDService.this, SaveFCMTokenService.class);
intent.putExtra("TOKEN",refreshedToken);
FirebaseIDService.this.startService(intent);
}
}
接下来创建一个 SaveFCMTokenService
类,该类继承自 Service
类。
public class SaveFCMTokenService extends Service {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(intent != null){
Bundle b = intent.getExtras();
if(b != null) {
String token = b.getString("TOKEN");
sendRegistrationToServer(token);
}
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
private void sendRegistrationToServer(final String token) {
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
DatabaseReference fcmDatabaseRef = ref.child("FCM_Device_Tokens").push();
FCM_Device_Tokens obj = new FCM_Device_Tokens();
obj.setToken(token);
fcmDatabaseRef.setValue(obj);
}
}
此外,别忘了将这两个内容添加到清单文件中。
<service android:name=".servicesreceivers.FirebaseIDService">
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<service android:name=".servicesreceivers.SaveFCMTokenService" />
FCM_Device_Tokens模型类
@IgnoreExtraProperties
public class FCM_Device_Tokens {
@SerializedName("token")
private String token;
public FCM_Device_Tokens() {
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}