簡體   English   中英

為什么會出現此Cloud Firestore Function錯誤?

[英]Why do I get this Cloud Firestore Function error?

我在Cloud Firestore功能日志視圖中收到此錯誤。
我是JavaScript和Firestore的新手,可以在此使用一些建議

TypeError:event.data.previous.data不是exports.onVisitorPres上的函數...

exports.onVisitorPresenceWrite = functions.database
    .ref("/VISITORS_PRESENCE/{uid1}/{uid2}").onWrite((event) => {
        // Get the data written or deleted on the Realtime Database
        var eventStatus = event.data.val();
        const previousData = event.data.previous.data();
        // If the onWrite event is a delete event then use previousData
        if(eventStatus == null){
            eventStatus = previousData;
        }
    });

我想做的是在刪除關鍵項和添加新項時在Firebase Realtime數據庫密鑰和Firestore函數觸發器上使用.onWrite((event) 。我想我可以檢查eventStatus == null ,即當數據被刪除時,我只使用了previousData(在被刪除之前?)

event變量是一個實例Event ,並因此呼吁event.data將返回DeltaDocumentSnapshot為公司的FireStore和DeltaSnapshot為實時數據庫。

使用這些增量快照,您可以獲得前一個值和previous一個值,這將返回另一個DeltaDocumentSnapshotDeltaSnapshot其中包含觸發寫入事件之前的前一個狀態。

在您的示例中,您使用的是Firebase實時數據庫觸發器,這意味着event.data.previous將返回一個DeltaSnapshot ,它不支持data() ,但支持val()

在這種情況下,就像使用var eventStatus = event.data.val(); ,您需要在上previous調用val()

const previousData = event.data.previous.val();

相反,如果您嘗試使用Firestore觸發器,則需要更改此設置:

functions.database.ref("[...]")

對此:

functions.firestore.document("[...]")

然后您可以使用event.data.previous.data()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM