使用事务使用实时数据库触发器来增加计数器是否可以接受?
exports.incPostCount = functions.database.ref('/threadsMeta/{threadId}/posts')
.onWrite(event => {
admin.database().ref('/analytics/postCount')
.transaction(count => {
if (count === null) {
return count = 1
} else {
return count + 1
}
})
});
绝对!实际上,这确实是此代码示例中的工作方式,尽管有一些小差异:
exports.countlikechange = functions.database.ref("/posts/{postid}/likes/{likeid}").onWrite((event) => {
var collectionRef = event.data.ref.parent;
var countRef = collectionRef.parent.child('likes_count');
return countRef.transaction(function(current) {
if (event.data.exists() && !event.data.previous.exists()) {
return (current || 0) + 1;
}
else if (!event.data.exists() && event.data.previous.exists()) {
return (current || 0) - 1;
}
});
});
值得注意的是,此示例根据创建还是删除子节点来处理增量和减量情况。
问题内容: 我已经看到了使用Cloud Functions引用实时数据库的增量计数器,但是还没有Firebase Firestore。 我有一个监听新文档的云功能: 我正在尝试上述交易,但是在终端中运行时出现此错误: 错误每个then()应该返回一个值或抛出promise / always-return函数预部署错误:命令以非零退出代码终止 这是我对任何node.js的首次尝试,而且我不确定我是否
我看到Cloud Functions引用实时数据库的增量计数器,但还没有看到Firebase FiRecovery。 我有一个侦听新文档的云功能: 我正在尝试上述事务,但当我在terminal中运行时,我得到以下错误: error Each then()应该返回一个值或抛出promise/always return函数predeploy error:命令以非零退出代码1终止 这是我第一次尝试任何节
问题内容: 尝试使用PayPal-node-SDK向Paypal的API请求 但我不断出错: 我尝试过的事情: 向完全不同的主机发出请求 将请求包装为 预先考虑到主机 问题是什么? 问题答案: 您需要按照付费计划进行外部API请求。 Firebase的Blaze计划(随用随付)为云功能免费分配。https://firebase.google.com/pricing/
我知道这里已经有人问过这个问题,但它没有回答我的问题。我的问题是,我们怎样才能分解指数。js用于云函数,包括onWrite调用等。 我意识到您可以使用“要求”并引入外部代码。它仍然留下一些代码(例如,在Franks OCR示例中),在index.js. 理想情况下,我希望能够将整个onWrite事件触发器移动到另一个文件中。 索引中的示例。js: 如何将整个函数event watch/call移动
问题内容: 我刚刚为Firebase实施了新的Cloud Functions,但是日志中有些东西让我感到困扰: 未配置结算帐户。无法访问外部网络,并且配额受到严重限制。配置计费帐户以消除这些限制 我实际上设法从外部网络访问该功能,所以我想知道我是否真的必须提供计费帐户?Firebase文档中对此没有任何内容。 我将Spark订阅计划用于个人测试,并且如果我不打算支付任何费用,则不想添加账单信息。
我刚刚为Firebase实现了新的云功能,但日志中有一些让我烦恼的地方: 未配置账单帐户。外部网络无法访问,配额受到严格限制。配置帐单帐户以删除这些限制 我实际上设法从外部网络访问了该功能,所以我想知道我真的必须给我的账单帐户吗?firebase文件里没有这方面的内容。 我使用Spark订阅计划用于个人测试目的,如果我还不打算支付任何费用,我不想添加账单信息。