簡體   English   中英

在Firebase函數中,如何在使用后清理數據庫引用?

[英]In Firebase functions, how to clean up database refs after use?

函數運行完畢后,如何刪除ref 有必要嗎? 我希望我的功能盡快運行,並且不希望堆積“東西”。

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.myFunction = functions.database.ref('/path/{uid}').onWrite(event => {
   const ref = event.data.adminRef.root.child('something').child(event.params.uid);

   return ref.transaction(current => {
      if (event.data.exists() && !event.data.previous.exists()) {
         return _.toInteger(current) + _.toInteger(_.get(data, 'value', 0));
      }
   }).then(() => {
      return null; // Avoid "Error serializing return value: TypeError: Converting circular structure to JSON"
    });
 });

您不能“刪除” DatabaseReference 它只是指向數據庫中某個位置的指針。 該文檔有相應的頁面: https : //firebase.google.com/docs/reference/admin/node/admin.database。參考

唯一可以刪除/分離的是使用ref.on(...)ref.off(...)設置的回調,但是代碼中沒有回調,我認為ref.once()大多數時候應該在函數中完成工作。

需要明確的是: ref.transactions()不必分離,它們只運行一次,即沒有回調。 ref.set()ref.once()

暫無
暫無

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

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