我是React Native和Firebase的新手,并决定提高我在这方面的知识,我读了一些关于交互以及如何将一个连接到另一个的文章,但我不知道如何将我在Firebase中的应用程序拆分为dev和prod,因为对于deva,我想使用集合并记录我在开发中使用的auth ticks,当在prod中编译时,我已经使用了真正的集合.

我觉得可以按照前缀的类型来排列:

  • [生产]我的应用程序
  • [开发人员]我的应用

但我发现Firebase不允许我用相同的"Android包名"创建另一个应用程序,因此,我需要根据调试.keystore和我的[Release].keystore使用不同的SHA1签名,我应该怎么做?你能给我指个正确的方向,看什么,读什么才能理解这个问题,因为我发现的大部分是80%的水,20%是我自己知道的,但它仍然没有回答我如何对待这种分离以及它应该如何表现的问题.

推荐答案

你不需要两个谷歌文件,一个也可以在这里工作.

示例:

Android/app/src中创建DevelopmentStaging文件夹,并将JSON文件放在那里

enter image description here

android/app/build.gradle内添加envConfigFiles

project.ext.envConfigFiles = [Development: "../../.env.Development",
                              Staging    : "../../.env.Staging",
                              Production : "../../.env.Production"]

enter image description here

在defaultConfigresValue "string", "build_config_package", "com.package"中添加resValue

在BuildTypes上方添加flavorDimensionssigningConfigsproductFlavors

 flavorDimensions "default"
    signingConfigs {
        development {
            storeFile file("../keystore/KeyStore")
            storePassword System.getenv("STORE_PASSWORD")
            keyAlias System.getenv("KEY_ALIAS")
            keyPassword System.getenv("KEY_PASSWORD")
        }
        staging {
            storeFile file("../keystore/KeyStore")
            storePassword System.getenv("STORE_PASSWORD")
            keyAlias System.getenv("KEY_ALIAS")
            keyPassword System.getenv("KEY_PASSWORD")
        }
        production {
            storeFile file("../keystore/KeyStore")
            storePassword System.getenv("STORE_PASSWORD")
            keyAlias System.getenv("KEY_ALIAS")
            keyPassword System.getenv("KEY_PASSWORD")
        }
    }
    productFlavors {
        Development {}
        Staging {}
        Production {}
    }

enter image description here

将这些代码添加到buildTypes

  debug {
            productFlavors.Development.signingConfig signingConfigs.development
            productFlavors.Staging.signingConfig signingConfigs.staging
            productFlavors.Production.signingConfig signingConfigs.production

在完成所有这些操作之后,使用下面的命令构建

   "android": "npx nx run-android zype-mobile --mode=StagingDebug",
   "android-prod": "npx nx run-android zype-mobile --mode=ProductionDebug",

Android相关问答推荐

修改参数应该应用于哪些子元素?

如何处理谷歌未经证实的应用程序拒绝?

原始mp3文件不显示与proguard

Android可绘制边框删除底线

Jetpack Compose:带芯片的Textfield

如何在Jetpack Compose中创建这个圆形?

SmsMessage如何在Kotlin库中工作?

闪屏 API 无法在 Android 12 上运行(API 31、32)

Android Drawable文件夹中的图像显示模糊

通过 setIntentScanningStrategyEnabled(true) 未检测到信标的 Android Beacon 库后台扫描

如何从 firebase 实时数据库中检索最后一个值

Composable 不会在单击按钮时重新组合

在 Jetpack Compose 中单击时更改表面项目的背景 colored颜色

如何在 Compose 中使用合并的单元格创建网格视图?

Android:appcompat 和 material 如何从默认创建 appcompat 和 material 视图?

协程中的 Job.Cancel 与 Scope.Cancel 有什么区别?

TextField 溢出和软包装不适用于 Compose 约束布局

在 Jetpack Compose 中 Select 要省略的文本

如何在 Kotlin 的片段中制作图像列表?

在 compose 屏幕之间传递 uri 会导致:SecurityException: Permission Denial