在我的Android应用程序中,我试图在不同的进程(而不是线程)中使用firebase服务。我在firebase使用的所有服务中添加了进程名称。
<service
android:name=".firebaseclient.CCTFirebaseMessagingService"
android:process=":fcmProcess">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service
android:name=".firebaseclient.FirebaseInstanceIDService"
android:process=":fcmProcess"
>
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
我应该在FirebaseInstanceIDService的方法中收到回电: -
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
}
但是我没有得到任何回调。除了这个Firebase在应用程序的主要过程中被初始化,这可能导致这个?
请帮我回复onTokenRefresh方法。
答案 0 :(得分:0)
根据this回答,您应该避免将Firebase置于第二个进程。
顺便说一句,您可以尝试使用
在第二个过程中手动初始化Firebase实例FirebaseApp.initializeApp(Context context, FirebaseOptions options)
//or
FirebaseApp.initializeApp(Context context, FirebaseOptions options, String appName)
PS:我从未尝试过,所以我无法确定这是否会奏效。