Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Firebase函数中,使用后如何清理数据库引用?_Javascript_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

Javascript 在Firebase函数中,使用后如何清理数据库引用?

Javascript 在Firebase函数中,使用后如何清理数据库引用?,javascript,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Firebase,Firebase Realtime Database,Google Cloud Functions,函数运行完毕后,如何删除ref?有必要吗?我希望我的函数尽可能快地运行,并且不希望事情堆积起来 const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase); exports.myFunction = functions.database.ref('/path/{uid}').o

函数运行完毕后,如何删除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"
    });
 });
数据库引用是不能删除的。它只是指向数据库中某个位置的指针。文档中有一个页面:

唯一可以删除/分离的是使用ref.on…,ref.off…,设置的回调,但是代码中没有回调,我认为ref.once应该在函数中完成大部分时间的工作

需要明确的是:ref.transactions不必分离,它们只运行一次,即没有回调。ref.set和ref.once也一样。

数据库引用是您无法删除的。它只是指向数据库中某个位置的指针。文档中有一个页面:

唯一可以删除/分离的是使用ref.on…,ref.off…,设置的回调,但是代码中没有回调,我认为ref.once应该在函数中完成大部分时间的工作


需要明确的是:ref.transactions不必分离,它们只运行一次,即没有回调。ref.set和ref.one也是一样。

我不确定我是否理解。您想在函数完成后从数据库中删除ref处的数据吗?不,我的意思是避免打开连接:但我想这不是问题。你指的可能是某种队列?类似return ref.setdata.then=>{return event.data.ref.remove;};我不确定我是否理解。您想在函数完成后从数据库中删除ref处的数据吗?不,我的意思是避免打开连接:但我想这不是问题。你指的可能是某种队列?类似return ref.setdata.then=>{return event.data.ref.remove;}@我很高兴,我的回答解决了你的问题!您也可以接受我的答案,这样其他人就知道它已经得到了回答,不会显示为未回答:我尝试了ref.on和ref.off,但在我更改值时,它仍在侦听。@我很高兴,我的答案解决了您的问题!您也可以接受我的答案,这样其他人就知道它已被回答,并且不会显示为未回答:我尝试了ref.on和ref.off,但在我更改值时它仍在侦听。