How to create multi environment DB's with Firestore

前端 未结 3 1964
醉酒成梦
醉酒成梦 2020-12-15 17:37

I\'ve been looking at how to create multiple Firestore instances in Firebase, I need different Db\'s for prod, staging and development. I read the documentation and seems th

相关标签:
3条回答
  • 2020-12-15 17:44

    Firebase doesn't support the use of multiple Firestore instances in a single project.

    The Firebase team strongly recommends creating different projects for each of your environments to keep them separate. This probably means you will have to build different apps that each point to different instances, or you will have to somehow configure your app at runtime to select which project you want to work with.

    There is no obligation to add billing to any of the projects you don't want to pay for, as long as you accept the limitations of the Spark plan.

    0 讨论(0)
  • 2020-12-15 17:52

    Yes Firebase doesn't support multiple instance in a single project. However my case, i created 3 different document in Firestore root and setup each environment to refer these documents accordingly. Each document will have the same collections, sub collections and documents.

    For example,

    dev -> users -> details
        -> others_collection -> details
    
    stag -> users
         -> others_collection -> details
    
    prod -> users
         -> others_collection -> details
    

    On the client side, each environment will get the collection like this :

    db.collection(`${env}/users`)
    

    I am doing this on small project and seem pretty happy with what Firestore provided. In single project. i can create many ios/android apps according to the environment and each environment have it own document and collections in Firestore.

    0 讨论(0)
  • 2020-12-15 17:55

    The safest way is to create a new google cloud project. You can export your current firestore database to your new project if needed.

    Step by step:

    1. Backup your current database by exporting all your documents into a bucket: https://firebase.google.com/docs/firestore/manage-data/export-import

      gcloud beta firestore export gs://[BUCKET_NAME]

    2. Create a new project -> https://cloud.google.com/resource-manager/docs/creating-managing-projects

    3. In the dashboard, select Firestore into your new project and create an empty database
    4. In the dashboard, go to your BACKUP_BUCKET and add your new project service account in the permission tab

    5. Switch project to your new project gcloud config set project 'new-project'

    6. Then export your data gcloud beta firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ The EXPORT_PREFIX being the name of the folder created in your bucket.

    I use this method to have clearly separated 'preprod' and 'production' environments (the team can access and synchronize with production without having access to the production environment codebase and configuration).

    0 讨论(0)
提交回复
热议问题