Total de visualizações de página

Setup two environments for flutter firebase (existing project) - Dois google-services.json - firebase

 For Android:

  • create a folder "staging" at /android/app/src and put your google-services.json for dev
  • create a folder "production" at /android/app/src and put your google-services.jsonfor production
  • in your /android/app/build.graddle:

add

task switchToStaging(type: Copy) {
    description = 'Switches to Staging google-services.json'
    from "src/staging"
    include "google-services.json"
    into "."
}

task switchToProduction(type: Copy) {
    description = 'Switches to Production google-services.json'
    from "src/production"
    include "google-services.json"
    into "."
}

afterEvaluate {
    processStagingDebugGoogleServices.dependsOn switchToStaging
    processStagingReleaseGoogleServices.dependsOn switchToStaging
    processProductionDebugGoogleServices.dependsOn switchToProduction
    processProductionReleaseGoogleServices.dependsOn switchToProduction
}

You can replace "staging" and "production" by your flavors name. When you will build it will copy google-services.json from the created folder to /android/app

For iOS:

  • the same way as Android, create a folder Firebase/staging and Firebase/productionat Runner/Runner/ and put your respective GoogleService-Info.plist

then, (assuming you have created your scheme that match to your flavors name), in Build Phases section in xcode:

replace if statement with your needs

if [ "${CONFIGURATION}" == "Debug-production" ] || [ "${CONFIGURATION}" == "Release-production" ] || [ "${CONFIGURATION}" == "Release" ]; then

cp -r "${PROJECT_DIR}/Runner/Firebase/production/GoogleService-Info.plist" "${PROJECT_DIR}/Runner/GoogleService-Info.plist"

elif [ "${CONFIGURATION}" == "Debug-profile" ] || [ "${CONFIGURATION}" == "Release-profile" ] || [ "${CONFIGURATION}" == "Profile" ]; then

cp -r "${PROJECT_DIR}/Runner/Firebase/staging/GoogleService-Info.plist" "${PROJECT_DIR}/Runner/GoogleService-Info.plist"

elif [ "${CONFIGURATION}" == "Debug-staging" ] || [ "${CONFIGURATION}" == "Release-staging" ] || [ "${CONFIGURATION}" == "Debug" ]; then

cp -r "${PROJECT_DIR}/Runner/Firebase/staging/GoogleService-Info.plist" "${PROJECT_DIR}/Runner/GoogleService-Info.plist"

fi

Fonte: https://stackoverflow.com/questions/77884297/setup-two-environments-for-flutter-firebase-existing-project

Comandos para conectar automaticamente o firebase com o flutter.

     dart pub global activate flutterfire_cli\n    export PATH="$PATH":"$HOME/.pub-cache/bin"\n    flutterfire configu...