当前位置: 首页 > 面试题库 >

具有Cloud功能的Firebase增量计数器

单于煌
2023-03-14
问题内容

我已经看到了使用Cloud Functions引用实时数据库的增量计数器,但是还没有Firebase Firestore。

我有一个监听新文档的云功能:

exports.addToChainCount = functions.firestore
    .document('chains/{name}')
    .onCreate((snap, context) => {

    // Initialize document
    var chainCounterRef = db.collection('counters').doc('chains');

    var transaction = db.runTransaction(t => {
        return t.get(chainCounterRef).then(doc => {
            // Add to the chain count
            var newCount = doc.data().count + 1;
            t.update(chainCounterRef, { count: newCount });
        });
    }).then(result => {
        console.log('Transaction success!');
    }).catch(err => {
        console.log('Transaction failure:', err);
    });
    return true;
});

我正在尝试上述交易,但是firebase deploy在终端中运行时出现此错误:

错误每个then()应该返回一个值或抛出promise / always-return函数预部署错误:命令以非零退出代码终止

这是我对任何node.js的首次尝试,而且我不确定我是否写的正确。


问题答案:

现在有一种更简单的方法来增加/减少文档中的字段:FieldValue.increment()。您的示例将如下所示:

var chainCounterRef = db.collection('counters').doc('chains');
chainCounterRef.update({ count: FieldValue.increment(1) });

看到:

  • 使用Cloud Firestore以原子方式增加价值


 类似资料:
  • 问题内容: 使用事务使用实时数据库触发器来增加计数器是否可以接受? 问题答案: 绝对!实际上,这确实是此代码示例中的工作方式,尽管有一些小差异: 值得注意的是,此示例根据创建还是删除子节点来处理增量和减量情况。

  • 我看到Cloud Functions引用实时数据库的增量计数器,但还没有看到Firebase FiRecovery。 我有一个侦听新文档的云功能: 我正在尝试上述事务,但当我在terminal中运行时,我得到以下错误: error Each then()应该返回一个值或抛出promise/always return函数predeploy error:命令以非零退出代码1终止 这是我第一次尝试任何节

  • 我有一个云函数,可以获取一些JSON数据。这就是它的全部功能。我遵循了视频中强调的提示:https://www.youtube.com/watch?v=IOXrwFqR6kY 所以,我有cors和rp依赖项,除了我的函数之外什么都没有。数据是压缩的(我认为这是默认功能)。Chrome开发工具显示数据是gzip压缩的。压缩后是37KB。开发工具一致显示TTFB约为4.5秒。内容下载仅约为7.8ms

  • 问题内容: 我知道这并不是问问题的正确方法,但是我遇到了问题: 我有一个本地存储的wsdl,我需要创建一个Web服务客户端来调用该Web服务。问题是服务位于防火墙后面,我必须通过代理连接到它,然后我必须进行身份验证才能连接到WS。 我所做的是使用Apache CXF 2.4.6生成WS Client,然后设置系统范围的代理 我知道这不是最佳做法,因此,请提出一个更好的解决方案,如果有人可以给我提示

  • 问题内容: 我已经编写了一些云函数并进行了部署,现在我正尝试使用Angular应用程序访问这些API,但出现此错误 从源’ http:// localhost:4200 ‘ 在’xxxxxxxxxxxxxxxxxxxxxxxx’处对X​​MLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:没有’Access- Control-Allow-Origin’标头在请

  • 问题内容: 我将Google Cloud功能用作后端来处理我的应用程序订单并与网关付款连接以接受/拒绝购买… 一切正常。但我想将购买事件注册到Firebase分析中,以便可以在Firebase的同一仪表板中监控所有应用收入 在android上,我可以执行以下操作: 然后它将出现在我的仪表板上…问题是我只想在用户为购买付款时注册此事件,因此可以从应用程序完成,必须在付款网关返回到我的后端后进行设置付