我正在尝试理解Promise如何通过Firebase函数响应客户端,我将在此给出一个非常简单的示例:
这是离子方法,可以保存一些数据,然后在firebase中触发功能:
helloworld() {
this.db.list(`/helloWorld/${this.userId}`).push({status: false})
.then(res => console.log(res))
}
Firebase功能已触发
exports.helloWorld = database
.ref('helloworld/{id}')
.onWrite((change, context) => {
const data = change.after.val();
const id = context.params.id;
return admin
.database()
.ref(`/helloWorld/${id}`)
.set({ status: true }).then((res) => res);
});
答案 0 :(得分:2)
所有后台类型的函数,包括实时数据库触发器,都不会“返回”任何进行更改的客户端。客户唯一知道的就是它做了更改。
后台函数返回的承诺仅用于一个目的-当该函数的所有异步工作完成时,告诉Cloud Functions。他们不会将任何信息传达回客户。
如果您需要后台功能将一些信息传递回客户端,则需要某种沟通渠道。该功能可以在与客户端达成一致的位置写回数据库,也可以使用Firebase Cloud Messaging对应用程序执行ping操作。没有一种正确的方法可以做到这一点-您将不得不提出一些适合您需要的东西。