如何在一个Android应用程序中集成两个Firebase项目,以使两个项目仍可独立运行?
背景: 到目前为止,我一直在公司的应用程序中使用一些旧的Firebase项目,主要用于GCM。现在,我组织内的决定已更改,我们决定将大多数服务迁移到具有更高定价计划的新Firebase项目中-不幸的是,升级不是一种选择。
此刻我有:
由于交换机引起的限制,我们不希望随云消息传递而移动-所有用户都需要再次注册到新的通知通道。出于营销原因,这是不可接受的。
目前,我正尝试使用由Gradle插件自动初始化的新项目的JSON
配置文件,以这种方式注册到旧版FCM服务:
FirebaseOptions fo = new FirebaseOptions.Builder()
.setApplicationId(appId)
.setApiKey(apiKey)
.setGcmSenderId(legacySenderId)
.build();
FirebaseApp firebaseApp = FirebaseApp.initializeApp(context, fo, "legacy");
HandlerThread thread = new HandlerThread("getLegacyTokenThread");
thread.start();
Handler handler = new Handler(thread.getLooper());
handler.post(() -> {
try {
String token = FirebaseInstanceId.getInstance(firebaseApp).getToken(legacySenderId, "FCM");
L.w("Received token: " + token);
} catch (IOException e) {
e.printStackTrace();
}
});
但是这种方法似乎是覆盖我的默认项目配置,因此不会将异常报告给属于新项目的Crashlytics。
有人可以建议我如何使其成功运行两个项目吗?
答案 0 :(得分:0)
在上面@Frank的评论之后,我没有成功使这种集成成功。
我们最终在营销服务中创建了一个新应用程序,该应用程序使用新凭证而不是更改先前凭证,这将导致集成无效。这样,我们既可以定位未更新的旧应用用户,也可以定位新用户。