此问题在此处已有答案:
Firebase Unhandled error RangeError: Maximum call stack size exceeded(3个答案)
昨天关门了。
这是我的firebase云函数。当用户点击我的iOS应用程序中的按钮时,它会增加一个计数器。该函数当前运行,但我收到错误“Unhandled error RangeError:在编码”“处超出了最大调用堆栈大小。在viewDidLoad(按下按钮后的目标视图)中调用了该函数。
exports.categoryOpened = functions.https.onCall((data, context) => {
const categoryUUID = data.categoryUUID;
const countryCode = data.countryCode;
// Get the current date and hour
const date = new Date();
const dd = String(date.getDate()).padStart(2, "0");
const mm = String(date.getMonth() + 1).padStart(2, "0");
const yyyy = date.getFullYear();
const hour = date.getHours();
const path = "analytics/"+
countryCode +
"/categories/" +
categoryUUID +
"/categoryOpened/" +
dd + "-" + mm + "-" + yyyy +
"/" + hour;
// Increment the count at the appropriate location in the database
return admin.database(analyticsDb).ref(path).transaction((count) => {
if (count) {
return count + 1;
}
return 1;
});
});
1条答案
按热度按时间k3bvogb11#
正如@GabrielNexT的评论所强调的,这是一个与其他answer thread类似的问题。
DatabaseReference#transaction()
调用返回一个Promise<
TransactionResult
>
,其中包含一个嵌套的DataSnapshot
对象,该对象最终是错误的实际原因。要正确地展开它并使用事务返回新计数,您将使用以下命令(可能需要多次尝试):
或者,以下代码也可用于跳过使用事务(单次尝试):