Javascript Firebase Firestore按时间戳和更多字段删除多个文档
我看到一个类似的例子。但是,我对编码非常陌生,我正在尝试从“用户”集合中删除所有超过1个月且不是高级的文档。删除文档时,提交的“user\u online”必须为30天或更长时间,“user\u premium”必须为“no” 我将节点js与adminsdk一起使用 如果有人能帮我用一个NodeJS代码来实现上述功能,我将不胜感激 利用其他帖子,我想到了以下内容Javascript Firebase Firestore按时间戳和更多字段删除多个文档,javascript,node.js,firebase,google-cloud-firestore,google-cloud-functions,Javascript,Node.js,Firebase,Google Cloud Firestore,Google Cloud Functions,我看到一个类似的例子。但是,我对编码非常陌生,我正在尝试从“用户”集合中删除所有超过1个月且不是高级的文档。删除文档时,提交的“user\u online”必须为30天或更长时间,“user\u premium”必须为“no” 我将节点js与adminsdk一起使用 如果有人能帮我用一个NodeJS代码来实现上述功能,我将不胜感激 利用其他帖子,我想到了以下内容 var userdelete_query = db.collection('users').where('user_online',
var userdelete_query = db.collection('users').where('user_online', '<=', new Date(Date.now() - 2592000000) && 'user_premium', '==', 'no');
userdelete_query.get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
doc.ref.delete();
console.log(`deleted: ${doc.id}`);
});
});
要组合两个where子句,需要将它们链接起来,如中所述
第三种可能的方法是使用(或者更好的是,批量删除)
&& 'user_premium', '==', no); -
var userdelete_query = db.collection('users')
.where('user_online', '<=', new Date(Date.now() - 2592000000))
.where('user_premium', '==', 'no');
userdelete_query.get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
doc.ref.delete();
});
});
const userdelete_query = db.collection('users')
.where('user_online', '<=', new Date(Date.now() - 2592000000))
.where('user_premium', '==', 'no');
userdelete_query.get()
.then(function(querySnapshot) {
const promises = [];
querySnapshot.forEach(function(doc) {
promises.push(doc.ref.delete());
});
return Promise.all(promises);
})
.then(function() {
console.log("ALL DOCS ARE DELETED");
})