繁体   English   中英

Android-在一个应用程序中设置多个具有不同服务的Firebase项目

[英]Android - setup multiple Firebase projects with different services within one application

如何在一个Android应用程序中集成两个Firebase项目,以使两个项目仍可独立运行?

背景:到目前为止,我一直在公司的应用程序中使用一些旧的Firebase项目,主要用于GCM。 现在,我组织内的决定已更改,我们决定将大多数服务迁移到具有更高定价计划的新Firebase项目中-不幸的是,升级不是一种选择。

此时此刻,我有:

  • 与某些营销服务相关的Cloud Messaging内容的旧项目,
  • 一个新的Firebase项目,该项目将用于Crashlytics,Remote Config标志等。

由于交换机引起的限制,我们不希望使用Cloud Messaging-所有用户都需要再次注册到新的通知通道。 出于营销原因,这是不可接受的。

现在,我试图使用由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。

谁能建议我如何成功地运行两个项目?

遵循@Frank的上述评论之后,我没有成功使这种集成成功。

我们最终在市场营销服务中创建了一个新应用程序,该应用程序使用新凭证而不是更改先前凭证,这将导致集成无效。 这样,我们既可以定位未更新的旧应用用户,也可以定位新用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM