繁体   English   中英

如何使用 Cloud Functions 从 Firestore 中的 ArrayList Map 中删除 object?

[英]How to delete an object from an ArrayList Map in Firestore using Cloud Functions?

exports.chatRoomDeleteTimer = functions.pubsub.schedule('* * * * *')
  .timeZone('America/New_York') // Users can choose timezone - default is America/Los_Angeles
  .onRun((context) => {
        return db.collection("ChatRoom").where('timestamp', '<', Math.round(new Date().getTime()/1000) - 60).get()
            .then(querySnapshot => {
                const promises = [];
                querySnapshot.forEach(doc => {

                promises.push(doc.ref.delete());
                db.collection("UsersFilter").doc(doc.get("chatRoomLeader.userID")).update({"UsersInChat": firebase.firestore.FieldValue.arrayRemove({"age": doc.get("chatRoomGuest.age"), "chatRoomID": doc.get("chatRoomGuest.chatRoomID"), "cityName": doc.get("chatRoomGuest.cityName"), "email":doc.get("chatRoomGuest.email"), "km":doc.get("chatRoomGuest.km"), "name":doc.get("chatRoomGuest.name"), "profilePic":doc.get("chatRoomGuest.profilePic"), "timestamp":doc.get("chatRoomGuest.timestamp"), "userID":doc.get("chatRoomGuest.userID")})});

                });
                return Promise.all(promises);
            });
    });

我不知道我做错了什么。 第一部分适用于我删除所有 1 分钟前的聊天室,但是当我尝试使用 FieldArray 删除时,由于某种原因不起作用。

改变了这个:

db.collection("UsersFilter").doc(doc.get("chatRoomLeader.userID")).update({"UsersInChat": firebase.firestore.FieldValue.arrayRemove({"age": doc.get("chatRoomGuest.age"), "chatRoomID": doc.get("chatRoomGuest.chatRoomID"), "cityName": doc.get("chatRoomGuest.cityName"), "email":doc.get("chatRoomGuest.email"), "km":doc.get("chatRoomGuest.km"), "name":doc.get("chatRoomGuest.name"), "profilePic":doc.get("chatRoomGuest.profilePic"), "timestamp":doc.get("chatRoomGuest.timestamp"), "userID":doc.get("chatRoomGuest.userID")})});

对此:

db.collection("UsersFilter").doc(doc.data().chatRoomLeader.userID).update({"UsersInChat" : admin.firestore.FieldValue.arrayRemove({"age": doc.data().chatRoomGuest.age, "chatRoomID": doc.data().chatRoomGuest.chatRoomID, "cityName": doc.data().chatRoomGuest.cityName, "email": doc.data().chatRoomGuest.email, "km": doc.data().chatRoomGuest.km, "name": doc.data().chatRoomGuest.name, "profilePic": doc.data().chatRoomGuest.profilePic, "timestamp": doc.data().chatRoomGuest.timestamp, "userID": doc.data().chatRoomGuest.userID})});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM