我遇到了一个奇怪的问题。我正在集成一个使用 FCM 进行注册的库。但是在我自己的应用程序中,我还要求FCM检索一些消息。但是,我似乎无法注册相同的应用程序来接收来自两个渠道(不同的服务器 API ID(的消息。"外部"应用程序似乎用其google-services.json覆盖了内部库。
问题:是否可以使用两个不同的 API 密钥同时接受发送到包含的库和主应用程序的 FCM 消息?
确保您通过 FCM 检索信息的方式正确无误。似乎是一种不好的做法。
您可以使用可以替换或覆盖元数据元素的清单合并。
<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());
}