Bus*_*pie 5 javascript node.js firebase firebase-realtime-database google-cloud-functions
让我们采取以下数据结构:

现在我想用Firebase函数刷新accessTokenFacebook.我测试了两个选项:
onWrite看起来对我来说是最好的,但具有以下功能:
exports.getFacebookAccessTokenOnchange = functions.database.ref('/users/{uid}/userAccountInfo/lastLogin').onWrite(event => {
const lastLogin = event.data;
let dateObject = new Date();
let currentDate = dateObject.toUTCString();
return lastLogin.ref.parent.parent.child('services').child('facebook').update({'accessTokenFacebook': currentDate});
});
Run Code Online (Sandbox Code Playgroud)
有事我don'understand /可以解决:当我删除整个userUID记录(用于清理),该userUID记录自动创建,那么只能用以下路径{} UID /服务/ facebood/accesTokenFacebook ...
似乎删除也会触发onWrite.
我也尝试过.onchange,但只有当仍然没有accessTokenFacebook时才触发.当更改成为这个时,更改永远不会再次触发.
所以接下来我要做的是比较旧值和新值.你有一个例子吗?或者有更好的解决方案吗?
Rba*_*bar 11
UPDATE: 云功能最近推出的更改API的说明这里.
现在(> = v1.0.0)
exports.dbWrite = functions.database.ref('/path').onWrite((change, context) => {
const beforeData = change.before.val(); // data before the write
const afterData = change.after.val(); // data after the write
});
Run Code Online (Sandbox Code Playgroud)
之前(<= v0.9.1)
exports.dbWrite = functions.database.ref('/path').onWrite((event) => {
const beforeData = event.data.previous.val(); // data before the write
const afterData = event.data.val(); // data after the write
});
Run Code Online (Sandbox Code Playgroud)
小智 5
现在这些函数已被弃用,并且这是该主题的第一搜索结果,以下是 Cloud Functions 现在使用的新更新版本。
exports.yourFunction = functions.database.ref('/path/{randomPath}/goes/here').onWrite((change, context) => {
// Your value after the write
const newVal = change.after.val();
// Your value before the write
const oldVal = change.before.val();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3613 次 |
| 最近记录: |