同时在库和主应用程序中进行FCM消息传递

时间:2019-10-14 12:06:48

标签: android firebase-cloud-messaging

我有一个奇怪的问题。我正在集成一个使用FCM进行注册的库。但是,在我自己的应用程序中,我还需要FCM来检索一些消息。但是,似乎我不能注册相同的应用程序来接收来自两个渠道的消息(不同的服务器API ID)。 “外部”应用似乎用google-services.json覆盖了内部库

问题:是否可以使用两个不同的API密钥同时向包含的库和主应用程序接受FCM消息?

1 个答案:

答案 0 :(得分:0)

确保通过FCM检索信息的方式正确。似乎是一种不好的做法。

您可以使用manifest merger来替换或替代meta-data elements

  <meta-data 
     android:name="fcm_key"
     android:value="YOUR_KEY"
     tools:node="replace" />

读取清单中的元数据

try {
   ApplicationInfo ai = 
   getPackageManager().getApplicationInfo(activity.getPackageName(), 
   PackageManager.GET_META_DATA);
   Bundle bundle = ai.metaData;
   String myApiKey = bundle.getString("fcm_key");
} catch (NameNotFoundException e) {
   Log.e(TAG, "Failed to load meta-data, NameNotFound: " + 
   e.getMessage());
} catch (NullPointerException e) {
   Log.e(TAG, "Failed to load meta-data, NullPointer: " + e.getMessage());          
}