Как удалить все коллекции из FireStore - PullRequest
0 голосов
/ 31 августа 2018

Я не могу найти кнопку удаления, чтобы стереть все коллекции в fireStore с помощью консоли Firebase одновременно. Я могу удалить коллекции только одну за другой.

Есть ли способ удалить все из консоли Firebase / импортировать данные из Json (например, базы данных Firebase) в FireStore, или мне нужно написать скрипт для этого?

enter image description here

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Вот что я сделал:

   deleteCollection(db, collectionPath, batchSize) {
        let collectionRef = db.collection(collectionPath);
        let query = collectionRef.orderBy('__name__').limit(batchSize);

        return new Promise((resolve, reject) => {
            this.deleteQueryBatch(db, query, batchSize, resolve, reject);
        });
    }

    deleteQueryBatch(db, query, batchSize, resolve, reject) {
        query.get()
            .then((snapshot) => {
                // When there are no documents left, we are done
                if (snapshot.size === 0) {
                    return 0;
                }

                // Delete documents in a batch
                let batch = db.batch();
                snapshot.docs.forEach((doc) => {
                    batch.delete(doc.ref);
                });

                return batch.commit().then(() => {
                    return snapshot.size;
                });
            }).then((numDeleted) => {
            if (numDeleted === 0) {
                resolve();
                return;
            }

            // Recurse on the next process tick, to avoid
            // exploding the stack.
            process.nextTick(() => {
                this.deleteQueryBatch(db, query, batchSize, resolve, reject);
            });
        })
            .catch(reject);
    }

* ИСПОЛЬЗОВАНИЕ 1006 *

flushDB() {
    this.deleteCollection(db, 'users', 100)
    this.deleteCollection(db, 'featureFlags', 100)
    this.deleteCollection(db, 'preferences', 100)
}
0 голосов
/ 31 августа 2018

В консоли Firebase и API нет действия для удаления всех коллекций за один раз.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...