Запуск Firestore local, например. для тестирования

Есть ли способ локального запуска firestore (например, для тестирования)?

Каким будет подход к написанию тестов против БД (кроме использования mocks)

Ответ 1

В настоящее время нет, но следите за обновлениями, как это мы хотим предоставить.

Тем временем мы предлагаем использовать отдельный проект тестирования для покрытия этого. Ежедневный бесплатный уровень для каждого проекта также помогает в этом.

Ответ 2

Обновление от ноября 2018 г.: локальная эмуляция, по крайней мере, с целью тестирования правил Firestore, была продемонстрирована на Firebase Summit 2018 с использованием @firestore/testing и задокументирована в разделе " Проверка правил безопасности облачного 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)

Кажется, рано, как это не было отмечено в примечаниях к выпуску, но я уверен, что это произойдет.

Ответ 3

для тестирования firestore напишите пример 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

UPDATE!!!! ДЕЙСТВИТЕЛЬНО ДЛЯ НАПРАВЛЕНИЯ И ОБНОВЛЕНИЯ СОБЫТИЙ

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

    },
    after: {

        //your after data
     }
  };
testFireStoreEvent(data);

Ответ 4

Вы можете запустить эмулятор Firestore, выполнив:

gcloud beta emulators firestore start

и затем установите FIRESTORE_EMULATOR_HOST среды FIRESTORE_EMULATOR_HOST согласно выводу консоли (например, запустите export FIRESTORE_EMULATOR_HOST=::1:8505).

Для этого требуется, чтобы Google Cloud SDK и Java 8+ JRE были установлены и в вашей системе PATH.