Dar*_*e77 5 push-notification firebase react-native firebase-cloud-messaging expo
我为每个releaseChannel都有一个不同的google-service.json文件(用于prod、stage、QA和dev的文件)
\n有关更多详细信息,我想在不同的环境中实现推送通知。\ncuz 我不想在 QA 中发送测试通知并将通知发送给产品用户!
\n这是android配置app.json
"android": {\n "googleServicesFile": "./google-services.json",\n "adaptiveIcon": {\n "foregroundImage": "./src/assets/adaptive-icon.png"\n },\n "permissions": [\n "android.permission.CAMERA",\n "android.permission.ACCESS_FINE_LOCATION",\n "android.permission.WRITE_EXTERNAL_STORAGE",\n "android.permission.READ_EXTERNAL_STORAGE",\n "android.permission.ACTION_BOOT_COMPLETED",\n "android.permission.RECORD_AUDIO",\n "com.google.android.gms.permission.AD_ID"\n ],\n "package": "com.beyondbelievers.awal",\n "versionCode": 1\n },\xc3\x8f\nRun Code Online (Sandbox Code Playgroud)\n有什么方法可以在每个环境中加载不同的文件吗?
\n这个答案的灵感来自于一个老问题,你可以在这里查看,
在我搜索了整个互联网之后,我找到了一种方法,但是使用app.config.js
我将尝试通过以下步骤解释我如何实现我的目标:
app.json为app.config.js:这里的博览会文档解释了如何从app.json.eas.json所有配置文件中添加了以下行"APP_VARIANT": "qa":{
"qa": {
...
"releaseChannel": "qa",
"env": {
"APP_VARIANT": "qa"
}
...
},
"stage": {
...
"releaseChannel": "stage",
"env": {
"APP_VARIANT": "stage"
}
...
},
"prod": {
...
"releaseChannel": "prod",
"env": {
"APP_VARIANT": "prod"
}
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
该"APP_VARIANT"变量包含 env 的类型,基于它我可以稍后检查哪个文件给我们。
app.config.js添加以下行:
// this will return the value of APP_VARIANT defined in eas.json
const APP_RELEASE_CHANNEL = process.env.APP_VARIANT;
// define the AndroidGoogleServicesFile variable to use instead of the normal string and assign a default value to it
let AndroidGoogleServicesFile = "./google-services-dev.json";
// now check the value of the APP_VARIANT and based on it assign the path of the google-services you wanna use
if (APP_RELEASE_CHANNEL === "qa") {
AndroidGoogleServicesFile = "./google-services-qa.json";
} else if (APP_RELEASE_CHANNEL === "stage") {
AndroidGoogleServicesFile = "./google-services-stage.json";
} else if (APP_RELEASE_CHANNEL === "prod") {
AndroidGoogleServicesFile = "./google-services-prod.json";
}
Run Code Online (Sandbox Code Playgroud)
android: {
...
googleServicesFile: AndroidGoogleServicesFile,
...
},
Run Code Online (Sandbox Code Playgroud)
这就是我解决我的问题的方法,我希望这也能解决你的问题。
如果您不明白我欢迎更详细地解释
| 归档时间: |
|
| 查看次数: |
1117 次 |
| 最近记录: |