Firestoreをローカルで実行する方法はありますか(例:testing目的)?
DBに対してテストを記述するアプローチは何ですか(モックの使用を除く)
現在はありませんが、提供したいものですので、ご期待ください。
それまでの間、これをカバーするために別のテストプロジェクトを使用することをお勧めします。プロジェクトごとの毎日の無料利用枠もこれに役立ちます。
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)
リリースノートには記載されていないので、早い段階にあるように見えますが、それがやってくると確信しています。
Firestoreエミュレーターを実行するには、次を実行します。
gcloud beta emulators firestore start
そして、FIRESTORE_EMULATOR_Host
コンソール出力ごとの環境変数(例:export FIRESTORE_EMULATOR_Host=::1:8505
)。
これには、 Google Cloud SDK およびJava 8+ JREがインストールされ、システムPATHにインストールされている必要があります。
ファイアーストアのテストのために、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);