Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使firebase函数(在create上使用)返回我可以从自己的react本机应用程序捕获的错误

如何使firebase函数(在create上使用)返回我可以从自己的react本机应用程序捕获的错误
EN

Stack Overflow用户
提问于 2022-07-22 10:11:19
回答 1查看 47关注 0票数 0

我为我的购物应用程序创建了一个Firebase函数,该函数在创建订单时触发,然后检查订单中每个产品的数量,并在数据库中更新产品数量。我需要这个来跟踪有多少项目是剩下的每一个产品。但是,如果订单中的某个产品的数量超过了剩余的数量(数据库中的产品数量),我需要一种方法使函数返回从我的react本地应用程序中捕捉到的错误,这样我就可以通知用户他所要求的数量是不可用的。我还需要这个函数来停止在数据库中创建order。

下面是我编写的firebase函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
exports.countOrderProductChange = functions.firestore.document("/orders/{id}")
    .onCreate((change, context) => {
      const data = change.data();
      const itemsList = data["itemsList"];
      let error = "";

      const newProductsSizes = {};

      for (const item of itemsList) {
        db.collection("products").doc(item.product.id).get().then((doc) => {
          const product = doc.data();
          let sizes = [];
          if (item.product.id in newProductsSizes) {
            sizes = newProductsSizes[item.product.id];
          } else {
            sizes = product.sizes;
          }

          const remaingSize = sizes.find((size) => (size.name == item.size));
          const remaingSizeQty = remaingSize.qty;

          if (remaingSizeQty < item.qty) {
            if (remaingSizeQty == 0) {
              error = "Sorry there's no more (" + item.size +
               ") size of the product: " + item.product.name;
            } else {
              error = "Sorry there's only "+ remaingSizeQty +
              " of (" + item.size +
              ") size of the product: " + item.product.name;
            }
            functions.logger.log(error);
            return error;
          } else {
            const sizeIndex = sizes.findIndex((obj) => (obj.name == item.size));
            const newQty = remaingSizeQty - item.qty;
            const newSizes = sizes;
            newSizes[sizeIndex].qty = newQty;

            newProductsSizes[item.product.id] = newSizes;
          }
        });
      }
      for (const productId in Object.keys(newProductsSizes)) {
        if (Object.prototype.isPrototypeOf.call(newProductsSizes, productId)) {
          db.collection("products").doc(productId).update({
            sizes: newProductsSizes[productId],
          });
        }
      }
});
EN

回答 1

Stack Overflow用户

发布于 2022-08-01 09:39:51

正如Doug所评论的,您的应用程序无法直接运行onCreate函数,因为这种类型的函数是背景函数。如第三点所示,这些函数是从后端调用的:

当事件提供程序生成与函数条件匹配的事件时,将调用代码。

您可以检查这个相关员额以获得更多引用,其中还提到侦听用于保存操作状态的文档。

另一种选择是使用可调用函数。这些函数允许您在应用程序中直接调用处理客户端上的错误

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73084488

复制
相关文章
[译] 定制 create-react-app:如何制作自己的模版
原文:https://auth0.com/blog/how-to-configure-create-react-app/#Test-Your-Custom-Script
江米小枣
2020/06/15
1.4K0
在 React 16 中从 setState 返回 null 的妙用[每日前端夜话0x7D]
在 React 16 中为了防止不必要的 DOM 更新,允许你决定是否让 .setState 更来新状态。在调用 .setState 时返回 null 将不再触发更新。
疯狂的技术宅
2019/06/11
14.6K0
在create-react-app中使用sass
不管你是刚使用Reactjs或者是Reactjs的老司机,你们一定都听说过create-react-app这个脚手架,而从create-react-app的官方文档中,我们可以看到他们暂时还不支持直接导入LESS或者Sass。但是通过一些配置,我们还是可以从官方脚手架中使用sass/scss/less的。
Originalee
2018/08/30
2.9K0
2020 年你应该知道的 React 库
React 已经诞生很久了,自从它诞生开始,围绕组件驱动形成了一个非常全面的生态,但是来自其他编程语言或者框架的开发人员很难找到要构建一个 React 系统的所有组件。如果你是来自于像 Angular 这样的框架的开发者,你可能已经习惯了框架包含了所需要的所有功能,
桃翁
2020/02/26
14.5K0
组长指出了我使用react常犯的错误
年底了,换了项目组,新的项目组使用react,从vue到react,我只花了一天的时间,看了官方简单的文章之后,就觉得这玩意很简单啊,比起vue的那么api来说,这根本没有学习成本好吧,十分迅速的就进入了react的项目开发,并且洋洋得意,根据我多年的经验来看,这波肯定会得到领导的赏识
FE情报局
2023/01/31
8950
组长指出了我使用react常犯的错误
我们弃用 Firebase 了
作者 | John Considine 译者 | 平川 策划 | 刘燕 我们已经在 Firebase 上发布了 10 几款应用程序,几乎用到了该平台每个方面的特性,并设计了一个可以实现优雅扩展的手册。可以说,事实已经证明,Firebase 对 K-Optional Software 而言是非常宝贵的工具。 就在 2022 年 3 月,我们的开发人员还在为 Firebase Extensions 等创新欢呼。遗憾的是,过去几个月的三个主要变化破坏了开发体验,因此,在新项目中,K-Optional 将
深度学习与Python
2023/03/29
32.8K0
我们弃用 Firebase 了
如何用本机使虚拟机上网[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144225.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.4K0
如何将你的Hexo博客部署到Google Firebase上
博主最近在 白嫖万恶的资本 将博客部署到新的CDN上,所以在寻找免费的静态Web应用部署工具,发现了Google Firebase。
pai233
2022/04/26
1.3K0
如何将你的Hexo博客部署到Google Firebase上
React用错误边界来捕获和处理异常错误!
UI 中 JavaScript 错误不应该导致整个应用崩溃,错误边界就是解决方案(React 16 增加的功能)。
Learn-anything.cn
2021/11/28
1.2K0
不用try catch,如何机智的捕获错误
我们知道,React中有个特性Error Boundary,帮助我们在组件发生错误时显示“错误状态”的UI。
刘小夕
2020/09/29
2.7K0
不用try catch,如何机智的捕获错误
async/await 的错误捕获
这样写可以正常打印getdata success 但是如果我们给getData传入的参数不是1,getData会返回一个reject的Promise,而这个地方我们并没有对这个错误进行捕获,则会在控制台看见这样一个鲜红的报错Uncaught (in promise) getdata error
从入门到进错门
2020/03/19
1.3K0
Google 的 Firebase 如何删除项目
https://www.ossez.com/t/google-firebase/13792
HoneyMoose
2021/11/02
3.2K0
Google 的 Firebase 如何删除项目
使用Hexo在Github上搭建自己的博客
以前的博客是使用Jekyll托管在github上,后来用着越来越不方便,比如没有自动生成post,不能一键部署,文件结构和配置也是比较繁琐,更重要的是有时候用markdown写一篇文章,生成的静态文件很乱,应该是有些字符解析的问题。现在下决心换成了hexo
飞雪无情
2018/08/28
4850
给在本机运行的 React 程序配置 HTTPS
如果用 create-react-app 构建一个程序,并且在本地运行,默认情况下会用 HTTP 协议为该程序提供服务。而在生产环境中运行的程序都用 HTTPS 进行服务。
疯狂的技术宅
2020/11/03
2.9K0
给在本机运行的 React 程序配置 HTTPS
Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新)
程序如何自己更新自己呢?你可能会想到启动一个新的程序或者脚本来更新自己。然而 Windows 操作系统允许一个应用程序在运行期间修改自己的名称甚至移动自己到另一个文件夹中。利用这一点,我们可以很简单直接地做程序的 OTA 自动更新。
walterlv
2023/10/21
6580
Windows 上的应用程序在运行期间可以给自己改名(可以做 OTA 自我更新)
如何使用内核API函数 proc_create?
看到一个null pointer dereference的demo使用了这个函数。
Laikee
2022/04/25
1.5K0
React,优雅的捕获异常
https://juejin.cn/post/6974383324148006926
winty
2021/07/27
8230
2018年Web开发人员应该学习的12个框架
它可以帮助你获得更好的工作,并将你的职业生涯提升到新的水平,如果遇到无聊的工作,例如启动和停止服务器,设置一些cron作业,以及回复维护传统的旧电子邮件应用,使用框架效果会更好。
我就静静地看
2018/09/14
5.5K0
如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理
在使用 Go 开发的后台服务中,对于错误处理,一直以来都有多种不同的方案,本文探讨并提出一种从服务内到服务外的错误传递、返回和回溯的完整方案,还请读者们一起讨论。
amc
2021/09/18
9.3K0
如何在 Go 中优雅的处理和返回错误(1)——函数内部的错误处理
React 使用 Proxy 代理(create-react-app)
proxy,默认为NULL,类型为URL,一个为了发送http请求的代理 在平时开发时,尤其前后端分离时,需要假数据来进行模拟请求,这个时候就需要proxy代理来处理
SpiritLing
2020/07/20
12.5K0

相似问题

(错误:内部)使用React本机博览测试Firebase函数

13

Firebase:从signInWithEmailAndPassword返回捕获的错误

10

Firebase可以脱机使用React本机吗?

511

我可以在自己的应用程序中使用"Create -> From Template“吗?

10

函数,该函数在捕获非关键错误时使自己回想起自己。

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文