如何在不同的进程中运行firebase服务?

时间:2017-05-24 07:37:05

标签: android firebase firebase-cloud-messaging

在我的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方法。

1 个答案:

答案 0 :(得分:0)

根据this回答,您应该避免将Firebase置于第二个进程。

顺便说一句,您可以尝试使用

在第二个过程中手动初始化Firebase实例
FirebaseApp.initializeApp(Context context, FirebaseOptions options)
//or
FirebaseApp.initializeApp(Context context, FirebaseOptions options, String appName)

参考文档:https://firebase.google.com/docs/reference/android/com/google/firebase/FirebaseApp#initializeApp(android.content.Context,%20com.google.firebase.FirebaseOptions)

PS:我从未尝试过,所以我无法确定这是否会奏效。