Javascript Firebase Firestore按时间戳和更多字段删除多个文档

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',

我看到一个类似的例子。但是,我对编码非常陌生,我正在尝试从“用户”集合中删除所有超过1个月且不是高级的文档。删除文档时,提交的“user\u online”必须为30天或更长时间,“user\u premium”必须为“no”

我将节点js与adminsdk一起使用

如果有人能帮我用一个NodeJS代码来实现上述功能,我将不胜感激

利用其他帖子,我想到了以下内容

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");
})