nodejs firebase错误RangeError:超出最大调用堆栈大小失败

2024-01-03

我在 firebase 中遇到错误:

FIREBASE 警告:用户回调引发异常。 RangeError:超出最大调用堆栈大小

我没有发现我的错误。

我在这里很迷失,请帮助。

我的代码如下所示:

app.post('/updateCoords', (req, res)=>{
    var usrID = req.body.id;
    var usrCoords = {
        lat: req.body.lat,
        long: req.body.long
    }
    console.log('userID : '+usrID+' lat : '+usrCoords.lat+' long : '+usrCoords.long);
    var ref = database.ref('users');
    try{
        ref.orderByChild('username').equalTo(usrID).on("value", (snapshot)=> {
            if(!snapshot.val()){
                // Error
                return res.json({msg: 'username is not in D.B', success: false});
            }
            // Success
            admin.database().ref('users/' + usrID + '/currentLocation').update({
                lat: usrCoords.lat,
                long: usrCoords.long
            });
            return res.json({msg: 'user coords changed', success: true});
        });
    }catch(ex){
        console.log('ex /updateCoords = '+ex);
    }
});

您正在更新正在阅读的同一节点。这导致on("value"回调再次被触发。然后写入一个新值,再次触发回调。这种情况一直持续到运行时用完调用堆栈空间为止。

最简单的解决方案是使用once()代替on():

   var ref = database.ref('users');
    try{
        ref.orderByChild('username').equalTo(usrID).once("value", (snapshot)=> {
            if(!snapshot.val()){
                checker = true;
            }

            if(snapshot.val()){
                admin.database().ref('users/' + usrID + '/currentLocation').update({
                    lat: usrCoords.lat,
                    long: usrCoords.long
                });
                return res.json({msg: 'user coords changed', success: true});
            //  checker = false;
            }


            // res.json({msg: 'username is not in D.B', success: false});

        });
    }catch(ex){
         console.log('ex /updateCoords = '+ex);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nodejs firebase错误RangeError:超出最大调用堆栈大小失败 的相关文章

  • 使用 AWS Lambda 从 AWS S3 读取并提取巨大的 zip 文件

    我正在开发数据管理应用程序 客户可以上传zip file approx 250 MB 与多个text files approx 1500 MB on AWS S3 但由于记忆有限aws lamda 最大 1536MB 大小 我能够提取 50
  • 使用admin sdk在云函数中执行firestore集合组查询?

    firestore collectionGroup 方法在云函数中与 firebase admin sdk 一起使用时出现错误 是否可以在云函数中对 firestore 进行集合组查询 这是我尝试使用的 firestore 查询方法 htt
  • Redis 客户端忽略其上设置的配置选项并尝试连接到默认 IP 127.0.01

    在AWS中 我使用ElastiCache Redis服务器并使用节点作为后端和 promise redis 包 这就是我尝试连接到我的 redis 服务器端点的方法 client redis createClient host my red
  • 将 html2pdf 生成的 pdf 发送回服务器

    我必须使用以下命令发送客户端生成的 PDFhtml2pdf到服务器 我已成功将生成的 PDF 转换为 base64 并希望使用axios 这是我的客户端代码 function myFunction var element document
  • Angular2 + Laravel 与实时和 WebSockets

    我构建了一个应用程序 并计划与 Angular 2 和 laravel 进行实时战斗 例如 你按下 攻击 按钮 你的对手就会实时看到他的生命在下降 我的应用程序构建有 前端 角2 Backend PHP Laravel 5 2 现在我正在寻
  • 如何使用 Web 套接字和 Angular CLI 设置代理

    我有一个使用 Angular CLI 构建的简单 Web 应用程序 我希望它使用网络套接字与后端通信 我已经编写了后端 并使用一个简单的 index html 页面进行了测试 服务器可以在套接字上发送和接收该页面 在我的 angular c
  • Mongodb更新很多

    我正在使用express js 和 npm 模块 mongodb 进行开发 并以 mongodb 作为数据库 我有两个集合 即 用户 和 活动 一个用户可能有数千个活动 首先 我将用户的 id 姓名和图片 url 存储到 关系的活动文件 请
  • Child_process 处理带有回车符 (\r) 的 STDOUT 流

    我正在编写一个简单的应用程序 它允许工作中的内部系统请求从远程服务器到使用 REST 调用发起的另一个远程服务器的复制过程 使用 rsync 我已经对express框架足够熟悉 并且刚刚开始尝试child process库 并偶然发现了一个
  • 有人在node/socket.io 中成功实现了动态命名空间吗?

    含义 用户对应用程序进行身份验证 gt 应用程序设置socket io连接的命名空间 http www socketioserver com NAMESPACE 并且节点服务器相应地响应无需针对特定名称空间进行硬编码 到那个特定的命名空间
  • Sequelize.js - “不关联到”

    我在从数据库获取完整数据时遇到一些问题 那是我的模型 User module exports function sequelize DataTypes return sequelize define user id type DataTyp
  • socket.io 作为客户端

    有什么方法可以将socketio作为客户端运行 不是浏览器 而是nodejs脚本 我需要将数据从服务器广播到一些客户端 浏览器 和另一台linux机器 仅运行nodejs来获取变量 没有浏览器 欢迎任何想法 Regards github上有
  • Nodejs 一个接一个地运行异步函数

    我是 JS nodejs 的新手 所以如果我不能提出切中要害的问题 请原谅我 所以基本上 如果我有两个异步函数 async function init async function main 如何确保在 init 完成其异步请求后调用 ma
  • 重写规则,以便正确加载具有绝对路径的 css 和 js 文件

    我花了两个小时 但我无法弄清楚 我不知道如何谷歌解决方案 这是我在 htaccess 文件中的重写规则 RewriteCond REQUEST URI blog RewriteRule blog http localhost 2368 1
  • npm install 命令下载所需包的源位置是什么?

    我试图获取命令 npm install 尝试连接的源位置 URL 并根据 package json 文件获取要下载的依赖包 并将其放置在本地框中 从下面提到的网址 http www tutorialspoint com nodejs nod
  • Node.js 检测两个猫鼬查找何时完成

    我正在尝试使用自动完成功能初始化两个输入library https www devbridge com sourcery components jquery autocomplete 当我加载页面时 我将触发 Ajax 来初始化两个输入文本
  • JITSU 无法安装 OSX [节点 0.8.17 和 NPM 1.2.0] WTF

    我在通过 NPM 安装 jitsu 时遇到问题 我在 mac osx 10 6 8 上安装了节点 0 8 17 和 NPM 1 2 0 当我跑步时 sudo npm install jitsu g 首先它警告未找到自述文件 npm WARN
  • 护照:登录和帐户注册的不同重定向

    我在我的应用程序中使用护照模块 github身份验证 我想根据操作进行重定向 我检查这是否只是正常登录或者用户是否第一次登录 passport use new GitHubStrategy clientID conf github app
  • Cloud Functions for Firebase - 通过 Nodejs/Cloud Function 将多个 PDF 合并为一个

    我遇到了一个问题 我试图通过云功能合并一堆 PDF 然后将合并的 PDF 下载到用户的计算机上 我的提供程序中有一个函数 它调用云函数并传递指向 pdf 的 URL 数组 如下所示 mergePDFs pdfs Create array o
  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超

随机推荐