【发布时间】:2018-06-30 19:33:54
【问题描述】:
我试图实现的只是通过事务增加数据库中的值。这按预期对我有用,但我的 firebase 控制台中总是出现以下错误:
Function returned undefined, expected Promise or value
我目前的电话如下:
exports.reportCounter = functions.database.ref('/user/{userId}/reports/{initiatorId}').onWrite((change,context) => {
const userId = context.params.userId;
return userRef.child(userId).child("numReports").transaction(function(numReports) {
return change.after.exists()?((numReports || 0) + 1):(numReports - 1);
})
});
我也尝试过直接返回承诺:
return userRef.child(userId).child("numToIncrement").transaction(function(numToIncrement) {
return ((numToIncrement || 0) + 1);
});
【问题讨论】:
-
你应该可以直接返回promise。请编辑您的问题以在您尝试时显示整个代码示例。
-
我编辑了我的帖子。当我尝试直接返回承诺时,我实际上得到了另一个错误,但这似乎有所不同。
-
“似乎有所不同”是什么意思?
-
有时会收到“函数返回未定义,预期的 Promise 或值”,有时会收到“错误序列化返回值:TypeError:将循环结构转换为 JSON”
标签: node.js firebase firebase-realtime-database google-cloud-functions