Firebase的云功能:使用admin sdk更新/设置,返回承诺

时间:2017-04-28 01:10:54

标签: javascript firebase firebase-realtime-database google-cloud-functions

在Firebase的Cloud Functions中,例如:

// You must return a Promise when performing asynchronous tasks inside a Functions such as
      // writing to the Firebase Realtime Database.
      // Setting an "uppercase" sibling in the Realtime Database returns a Promise.

https://firebase.google.com/docs/functions/get-started中,它说

List

但在https://firebase.google.com/docs/database/admin/save-data中,apis正在使用回调。我可以知道如何正确设置/更新firebase功能内的数据吗?代码可以工作,但我不确定我是否正确执行或者是否是推荐的方式。感谢。

1 个答案:

答案 0 :(得分:4)

Firebase Database SDK中的每个写入操作都会返回一个承诺,以便您可以将其链接或将其返回到Google Cloud Functions环境。请参阅Michael提到的博客文章:Keeping our Promises (and Callbacks)

所以这两个代码片段也会这样做。回调:

var ref = admin.database().ref(`/abc/1234`);
ref.update({a:1}, function(error) {
  if (!error) {
    console.log("Write completed")
  }
  else {
    console.error("Write failed: "+error)
  }
});

承诺:

var ref = admin.database().ref(`/abc/1234`);
ref.update({a:1}).then(function() {
  console.log("Write completed")
}).catch(function(error) {
  console.error("Write failed: "+error)
});