亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firebase云函數:如何獲取帶有通配符表示法的文檔引用?

Firebase云函數:如何獲取帶有通配符表示法的文檔引用?

慕的地8271018 2022-08-04 10:31:49
以下是我嘗試使用Firebase云函數執行的操作:收聽“public_posts”集合下某個文檔中的更改。判斷更改是否在“公共”字段中從真到假如果為 true,則刪除觸發該函數的文檔對于步驟1和2,代碼很簡單,但我不知道步驟3的語法。獲取觸發該函數的文檔的引用的方法是什么?也就是說,我想知道下面空行的問題代碼是什么:exports.checkPrivate = functions.firestore.document('public_posts/{postid}').onUpdate((change,context)=>{     const data=change.after.data();     if (data.public===false){         //get the reference of the trigger document and delete it      }     else {         return null;     }});有什么建議嗎?謝謝!
查看完整描述

2 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

文檔中所述:

對于 和 事件,參數具有前后字段。這些都是 .onWriteonUpdatechangeDataSnapshot

因此,您可以執行以下操作:

exports.checkPrivate = functions.firestore

.document('public_posts/{postid}').onUpdate((change, context)=>{

     const data=change.after.data();

     if (!data.public) { //Note the additional change here

 

         const docRef = change.after.ref;

         return docRef.delete();


     }

     else {

         return null;

     }

});

在下面更新以下Karolina Hageg?rd評論:如果要獲取通配符的值,則需要使用對象,如:.postidcontextcontext.params.postid


嚴格來說,您獲得的是文檔 ID,而不是其 .當然,基于此值,您可以重新構建 with 將給出與 相同的對象。DocumentReferenceDocumentReferenceadmin.firestore().doc(`public_posts/${postid}`);change.after.ref


查看完整回答
反對 回復 2022-08-04
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

onUpdate 偵聽器返回一個對象 (https://firebase.google.com/docs/reference/functions/cloud_functions_.changeChange)

要獲取更新的文檔,您需要執行以下操作:

change.after.val()

要刪除文檔,您需要執行以下操作:

change.after.ref.remove()


查看完整回答
反對 回復 2022-08-04
  • 2 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號