web-dev-qa-db-ja.com

Firestore localの実行(例:検査用の

Firestoreをローカルで実行する方法はありますか(例:testing目的)?

DBに対してテストを記述するアプローチは何ですか(モックの使用を除く)

22
maku_at

現在はありませんが、提供したいものですので、ご期待ください。

それまでの間、これをカバーするために別のテストプロジェクトを使用することをお勧めします。プロジェクトごとの毎日の無料利用枠もこれに役立ちます。

17
Dan McGrath

2018年11月更新:少なくともFirestoreルールをテストするためのローカルエミュレーションがデモされました at Firebase Summit 2018 using- @firestore/testing および Cloud Firestoreセキュリティルールのテスト に記載されています。

次のような線に沿っているようです。

const firebase = require(`@firebase/testing`)
const app = firebase.initializeTestApp({
  projectId: 'my-project',
  auth: { uid: '123', email: '[email protected]' }
})

const attempt = app.firestore()
  .collection('colId').doc('docId').get()
firebase.assertFails(attempt)
firebase.assertSucceeds(attempt)

リリースノートには記載されていないので、早い段階にあるように見えますが、それがやってくると確信しています。

11
Brian M. Hunt

Firestoreエミュレーターを実行するには、次を実行します。

gcloud beta emulators firestore start

そして、FIRESTORE_EMULATOR_Hostコンソール出力ごとの環境変数(例:export FIRESTORE_EMULATOR_Host=::1:8505)。

これには、 Google Cloud SDK およびJava 8+ JREがインストールされ、システムPATHにインストールされている必要があります。

4
Oliver

ファイアーストアのテストのために、jsの例test.jsを書きます。この形式の例でテストを書くことができます。

var data = {
        value: {createTime: new Date(),
                updateTime: new Date(),
                fields:{

                        name:{stringValue:'new value data'},
                        age:{integerValue:50}
                      }
        },
        oldValue: {createTime: new Date(),  //old create time
                updateTime: new Date(),  //old update time time
                fields:{

                        name:{stringValue:'olvalue data'},
                        age:{integerValue:50}
                      }
        }
      };
testFireStoreEvent(data);

実行実行

firebase experimental:functions:Shell < test.js

更新!!!!書き込みおよび更新イベントに有効

var data = {
    before: {  
          //your before data

    },
    after: {

        //your after data
     }
  };
testFireStoreEvent(data);
2
Rene Arias