簡體   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