Firebase 模拟器返回空数据,但部署后工作正常

2024-05-04

我编写了一个非常基本的 API,它将返回服务。我尝试在模拟器中运行此 API,但它返回空数据

{
    "status": "success",
    "statusCode": 200,
    "message": "Services retrieved",
    "data": []
}

我已经设置了 firestore、函数和数据库模拟器。我正在使用

"firebase-admin": "^8.10.0",
"firebase-functions": "^3.6.0"

知道为什么数据响应为空吗?

EDIT

这是我调用服务的方法

export const activeServices = functions.https.onRequest((request, response) => {
    let services = new Array<string>();
    admin.firestore().collection(newServices).get()
    .then(serviceSnapshot => {
        serviceSnapshot.docs.forEach(doc => {
            if(doc.data().service_active){
                services.push(doc.data().service_name)
            }
        })
        const successResponse = common.success("success", 200, "Services retrieved", services)
        response.send(successResponse)
    })
    .catch(error => {
        const errorResponse = common.error("fail", 500, "Failed to get active services")
        console.error(errorResponse)
        response.send(errorResponse)
    })
})

我尝试执行此操作,但它什么也不返回,并在部署后执行相同的功能。我得到了回应。 从下面的答案来看,我认为仅运行函数将尝试与生产数据库进行通信。

firebase emulators:start --only functions

functions: The Cloud Firestore emulator is not running, so calls to Firestore will affect production.
⚠  External network resource requested!
   - URL: "http://xxx.xxx.xxx.xxx/computeMetadata/v1/instance"
 - Be careful, this may be a production service.
⚠  External network resource requested!
   - URL: "http://metadata.google.internal./computeMetadata/v1/instance"
 - Be careful, this may be a production service.

看起来它正在尝试与生产进行通信,但无法发出任何成功的请求。


如果它无法在模拟器中工作,但在部署中工作,则表明您的模拟 Firestore 没有数据。

试试这个:运行Firebase:emulators start --only functions这样使用的数据库就是您的生产数据库。 (显然,如果您要操纵那里的数据,请务必小心。)

然后针对您的生产数据库运行模拟函数。如果您获得了所需的数据,则问题可能出在您的模拟 Firestore 上。

就我个人而言,我发现使用模拟函数但非模拟火存储对我来说是最好的测试流程,我在其中创建生产数据库的重复部分以用于测试目的。这仍然允许像热重载这样的细节,但我发现这种行为可以更接近、更可预测地模仿生产。 然后,您可以让函数智能地指向数据库的适当部分,具体取决于您是否正在模拟。

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

Firebase 模拟器返回空数据,但部署后工作正常 的相关文章

随机推荐

  • iPhone 4 iOS 5 电池电量监控我需要将 setBatteryMonitoringEnabled:NO 添加到定期电池检查吗?

    我正在运行一个应用程序 可以在一夜之间对加速度计和陀螺仪数据进行采样 这是一个非常耗电的操作 我想教我的应用程序识别电池何时变低 这是我的原型代码 每 10 分钟检查一次电池电量 NSDate date NSDate date if int
  • Protractor:如何从字符串中删除多余的空格,就像我们在 java getText.trim() 中使用的那样

    如何从字符串中删除多余的空格 就像我们在中使用的那样java getText trim in 量角器 我这样使用 var columnvalue rows get 9 getText var columnvalue1 columnvalue
  • jQuery - 如何确定哪个链接被点击

    我有一个简单的 PHP 代码 可以生成n以下代码的副本 p class center Click Here to See Data p div class divSDB L2 div 它是使用 PHP 生成的 因此副本的数量预先未知 在另一
  • 返回 SOAP xml - Android

    在处理 Web 服务时 我使用适用于 Android 的 k2SOAP SoapObject request new SoapObject NAMESPACE METHOD NAME request addProperty ProjectI
  • 如何访问/记住闪亮中未选中的值?

    我正在摆弄 R 中的闪亮应用程序 该应用程序有 选择列表Input A 主要组 具有可能的值 A B 和 或C 一组复选框Input b 子群 它们是 通过选择动态填充Input A列表 chkb a 和 chkb b 代表 A c d 代
  • 如何访问 pytest 夹具中的所有标记?

    我正在使用 pytest 我想用标记来标记我的测试 这些标记将指定固定装置要在驱动程序中加载哪个页面 这可以轻松地与行为上下文对象一起使用 但我找不到如何使用 pytest 来做到这一点 以这段代码为例 import pytest pyte
  • ASP.NET 2.0 - 带有 tbody / thead 的 DataGrid

    有没有办法让 DataGrid 控件呈现 tbody 和 thead HTML 元素 虽然我喜欢 user186197 的答案 但该博客文章使用反射 但在非完全信任的托管环境中可能会出现问题 这是我们使用的 没有黑客 public clas
  • richTextBox 字符数限制?

    我在丰富的文本框中存储大量文本时遇到问题 我正在尝试读取一个相当大的文本文件 从 90mb 到 450mb 的任意位置 并将我读到的内容放入富文本框中 它可以在一个简单的程序中运行 但是当我在一个复杂的程序中运行时 我会得到一个 OutOf
  • 如何在不使用 CreateUser 的情况下在 ASP.NET 成员资格表中创建用户

    我想将用户和帖子从我正在使用的现有论坛迁移到 ASP NET 成员资格表 而不使用 CreateUser 基本上我想维护用户ID 以便当我迁移帖子时它们继续与正确的用户关联 有没有办法做到这一点 或者我最好只使用 CreateUser 然后
  • filepicker.io - 转换()和存储与 FPUrl 转换

    我有一个应用程序 用户可以在其中上传图像 并且它必须提供三种不同的尺寸 缩略图 中尺寸 全尺寸 我的用户不需要修改该图像 似乎有两个选择 选项1 每当我想显示缩略图时 就使用图像转换网址 前任 选项2 将convert 与store 结合使
  • Capistrano 和 GitHub Private Repo – 权限被拒绝(公钥)

    我继承了一个托管在 Linode 上的 Rails 项目 之前的开发人员使用 BitBucket 存储库以及 Capistrano 进行部署 我已经在 GitHub 上设置了一个私人存储库 并且正在尝试让 Capistrano 配方发挥作用
  • 由于标志字节串 -lt-0_10_4,无法使用 Stack 构建 hello world 程序

    通过生成一个裸露的 hello world 项目 stack new myproject simple 每当我跑步时stack setup stack init or stack build我总是出现以下错误 Downloading lts
  • 如何删除“绿屏”肖像背景

    我正在寻找一种方法来自动从大量图片中删除 透明 绿屏 肖像背景 到目前为止 我自己的尝试 呃 不太成功 我正在四处寻找any有关该主题的提示 解决方案或论文 商业解决方案也很好 在您评论并说不可能自动执行此操作之前 不 事实并非如此 实际上
  • PHP 扩展 mysqli 和 nd_mysqli 之间的区别[重复]

    这个问题在这里已经有答案了 Mysqli 准备好的语句 如下所示 在以下情况下会抛出以下错误 get result 叫做 stmt connection gt prepare select column from table where i
  • 是否可以在没有 LoadUserProfile = True 的情况下运行 WIF

    我正在尝试在共享主机上运行 WIF 依赖方应用程序 他们不会将 IIS 设置 LoadUserProfile 设置为 true 因此我收到以下错误 消息 数据保护操作失败 这可能是由于没有为当前线程的用户上下文加载用户配置文件而导致的 这可
  • 在 WPF 字体大小和“标准”字体大小之间转换

    我注意到在 WPF 中 12 磅的默认字体大小大致相当于 普通 应用程序 例如写字板 中的 9 磅 WPF 中的 10 磅大约是 7 磅标准 当我尝试匹配默认字体大小时在WPF写字板中的10 pt中 我发现13是最接近的 首先 为什么WPF
  • 如何在 PrimeNG 的 FileUpload 组件中中止文件上传?

    一 总结 基于PrimeNG中选择的文件文件上传组件 https www primefaces org primeng fileupload 我想中止特定文件名模式的文件上传到后端服务器 角度 6 0 7 PrimeNG 6 0 2 2 第
  • 将四边形(四边形)拟合到斑点

    应用不同的过滤和分割技术后 我最终得到如下图像 我可以访问一些轮廓检测函数 这些函数返回该对象边缘上的点列表 或者返回一个拟合的多边形 尽管有很多边 远多于 4 个 我想要一种将四边形适合该形状的方法 因为我知道它是应该是四边形的鞋盒的正面
  • PNG:deflate 和 zlib

    我试图理解 PNG 的压缩 但我似乎 网上查了很多自相矛盾的资料 我想了解 LZ77部分 带链表的哈希表中的搜索是如何完成的 这是在 deflate 中定义的吗 或者在zlib中实现 可以选择搜索方法吗 PNG 编码器 解码器可以设置一些压
  • Firebase 模拟器返回空数据,但部署后工作正常

    我编写了一个非常基本的 API 它将返回服务 我尝试在模拟器中运行此 API 但它返回空数据 status success statusCode 200 message Services retrieved data 我已经设置了 fire