【发布时间】:2020-09-26 07:36:38
【问题描述】:
我正在使用 Cloud Firestore,但遇到了一个奇怪的问题:删除集合后无法保存。
// DELETE ALL COLLECTIONS
const _feedback_delete_all_collections = await deleteAllCollections(user_id);
if(!_feedback_delete_all_collections) return _feedback_delete_all_collections;
// START SYNC, STORE AND RFM CALC
return await shopify._start(10, options, user_id);
我用于“deleteAllCollections”Google suggested codes:
async function deleteCollection(_collection, _doc_id, _subcollection, batchSize = 50) {
try {
const collectionRef = this.db.collection(_collection).doc(_doc_id).collection(_subcollection);
const query = collectionRef.limit(batchSize);
return new Promise((resolve, reject) => {
this.deleteQueryBatch(query, resolve).catch(reject);
});
} catch (error) {
return error;
}
}
async function deleteQueryBatch(query, resolve) {
const snapshot = await query.get();
const batchSize = snapshot.size;
if (batchSize === 0) {
// When there are no documents left, we are done
resolve(true);
}
// Delete documents in a batch
const batch = this.db.batch();
snapshot.docs.forEach((doc) => {
batch.delete(doc.ref);
});
await batch.commit();
// Recurse on the next process tick, to avoid
// exploding the stack.
process.nextTick(() => {
deleteQueryBatch(query, resolve);
});
}
所有代码都按顺序完美运行,所有参考写的反馈是:
WriteResult {
_writeTime: Timestamp { _seconds: 1601105237, _nanoseconds: 375427000 } }
我正在努力解决这个问题。
有没有人遇到过或者知道怎么解决的?
提前谢谢你!
编辑 - 外壳转储
Server listening on port 3000
---- START IMPORT index.js - _start
_feedback_delete_all_order true
_feedback_delete_all_XXX true
_feedback_delete_all_YYY true
_feedback_delete_all_product true
_feedback_delete_all_customer true
---------- Shopify.js - _start
_saveAllData - START shopify
Feedback Save Order: WriteResult {
_writeTime: Timestamp { _seconds: 1601135004, _nanoseconds: 241293000 } }
Feedback Save Order: WriteResult {
_writeTime: Timestamp { _seconds: 1601135004, _nanoseconds: 242116000 } }
Feedback Save Order: WriteResult {
_writeTime: Timestamp { _seconds: 1601135004, _nanoseconds: 242197000 } }
Feedback Save Order: WriteResult {
_writeTime: Timestamp { _seconds: 1601135004, _nanoseconds: 242888000 } }
Feedback Save Order: WriteResult {
_writeTime: Timestamp { _seconds: 1601135004, _nanoseconds: 242988000 } }
Feedback Save Order: WriteResult {
_writeTime: Timestamp { _seconds: 1601135004, _nanoseconds: 246281000 } }
Feedback Save Order: WriteResult {
_writeTime: Timestamp { _seconds: 1601135004, _nanoseconds: 245678000 } }
Feedback Save Order: WriteResult {
_writeTime: Timestamp { _seconds: 1601135004, _nanoseconds: 249575000 } }
Feedback Save Order: WriteResult {
_writeTime: Timestamp { _seconds: 1601135004, _nanoseconds: 251043000 } }
Feedback Save Order: WriteResult {
_writeTime: Timestamp { _seconds: 1601135004, _nanoseconds: 251268000 } }
_saveAllData - END
【问题讨论】:
标签: firebase google-cloud-firestore save