我是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相关问答推荐

泛型类型lambda函数参数作为函数参数

Composable不会以LocalConext.Current作为活动呈现

在一列中垂直对齐两个框

Play Google上发布的一款应用的房间数据库迁移

如何判断堆肥是否为空?

将 React Native 应用程序背景带到前台

为什么我收到这个错误我需要安装 android studio

如何在ExecutorService中设置progressBar的进度?不想使用 AsyncTask,因为它已被弃用

DatePickerDialog (Android/Kotlin) 的两个问题

如何在 Jetpack Compose 中设置行宽等于 TextField 的宽度?

ionic - capacitor - Android 风味 - 无法在模拟器或真实设备中运行应用程序

将房间中的实体更新为 isCompleted 并使用 Flow 问题获取所有数据

Android 12 通过包管理器中断 APK 安装?

如何在jetpack compose中创建自定义rememberState?

禁用通知权限后启动前台服务导致崩溃(Android 13)

MVVM - 这个逻辑的最佳层是什么?

Jetpack Compose 中的按钮上的文本未更新

我的自定义视图没有显示我应该如何修复它?

Android Room Database:如何处理实体中的 Arraylist?

为什么Android使用Java?