错误:无法加载默认凭据(Firebase 函数到 firestore)

2023-11-30

我正在尝试为 Firebase Cloud Functions 编写一个 onCall 函数,该函数在 firestore 数据库上执行高级查询任务(即根据 AutoML 自然语言检查文本查询以获取类别等),但在尝试查询来自函数的数据库:

Error getting documents ::  Error: Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.
    at GoogleAuth.getApplicationDefaultAsync (/srv/node_modules/google-auth-library/build/src/auth/googleauth.js:161:19)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)

功能:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();

exports.query = functions.https.onCall((data, context) => {
    const text = data.text;
    var results = [];
    const promise = db.collection('providers').get()
    promise.then((snapshot) => {
        console.log('marker');
        snapshot.forEach((doc) => {
            results.push({id: doc.id, data: doc.data()});
        });
        console.log('yessir');
        return {results: results};
    }).catch((err) => {
        console.log('Error getting documents :: ', err)
        console.log('nosir');
        return {results: "no results"};
    });
});

更长的输出:

Function execution started
Function execution took 8ms, finished with status code: 200
Error getting documents :: (etc, same error)
nosir

示例2(运行中没有变化):

Function execution started
Function execution took 1200 ms, finished with status code: 200
marker
yessir

我不知道这个问题从何而来或如何解决。 有什么帮助吗?

Regards.


What I first解决这个问题的方法是将我的 firebase admin sdk 密钥添加到我的项目中。

我在以下位置下载的

https://console.firebase.google.com/u/0/project/**YOUR_PROJECT_ID**/settings/serviceaccounts/adminsdk

Admin SDK Key Download Page

then at admin.initializeApp();我改为:

admin.initializeApp({
    credential: admin.credential.cert(require('../keys/admin.json'))
});

我的文件夹结构是

├── key
│   ├── admin.json
├── src
│   ├── index.ts

HOWEVER,更好的实践和更安全的方法,正如一些人已经提到的: 您可以使用环境变量来存储您的凭据,这样您就不会将其提交到 Github 等存储库,从而使其更安全,免受安全漏洞的影响,并且不会对其进行硬编码。

根据您的项目以及部署位置,有不同的方法可以实现。

有很多关于如何创建和访问环境变量的教程(像这个),但您可以使用如下例所示的名称:

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

错误:无法加载默认凭据(Firebase 函数到 firestore) 的相关文章

  • 在哪里存储 Java 的 .properties 文件?

    The Java教程 http download oracle com javase tutorial essential environment properties htmlon using Properties 讨论如何使用 Prop
  • 没有 OAuth 的 Spring Security JWT

    最近我开始学习如何使用oauth 2 0 jwt配置spring boot 我有一个问题 是否可以使用spring boot security jwt避免oauth 2 0 是的 可以使用JWT无需使用标准化的功能OAuth 2 0 flo
  • 如何为 Windows toast 注册协议?

    如何注册 Windows toast 协议 样本中来自https blogs msdn microsoft com tiles and toasts 2015 07 02 adaptive and interactive toast not
  • 闪亮井板宽度

    library shiny library shinydashboard ui lt dashboardPage dashboardHeader dashboardSidebar dashboardBody wellPanel tags d
  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default
  • Android ScrollView fillViewport 不工作

    我有一个简单的布局 名称位于顶部 按钮位于屏幕底部 或者超出该按钮 以防我添加更多项目 所以我使用带有 LinearLayout 的 ScrollView 如下所示
  • 在 Android 中使用 iText 将图像添加到特定位置

    我想使用 Android 中的 iText 将图像添加到 PDF 文件中的特定位置 这是一个可填写的表单 我添加了作为图像占位符的文本框 我想要做的就是像这样获取该文本框和图像 public class FormFill public st
  • NGinx $proxy_add_x_forwarded_for 和 real_ip_header

    我在 NGinx 下有一个 web 应用程序和另一个前端负载均衡器 如下所示 x x x x IP 地址 客户端 a a a a gt LB b b b b gt NGX c c c c gt WEBAPP d d d d 这是我的 NGi
  • Typescript 函数接口重载

    我有以下代码 interface MySecondInterface a type A interface MyInterface val1 string val2 string MySecondInterface a
  • 带显示块的SPAN

    和默认有什么区别 div 元素和默认值 span 元素与display block HTML 元素的有效性和语义存在差异 否则它们是相同的 div and span两者都被定义为通用容器 在 HTML 方面没有更深层次的含义 一个默认为块显
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 自定义 Visual Studio 2008 中的位置栏

    有人成功定制了 VS 2008 的 Places Bar 吗 我从 VS 2005 进行的自定义设置并没有转移到 2008 显然 并且无论我如何处理注册表 我都无法使我的自定义位置出现在 打开 对话框中 我已经阅读并应用了相关的MS KB文
  • 从 Azure 应用服务连接到 MongoDB Atlas 集群

    我在 Azure 上有一个 Web 应用程序 它连接到 Atlas cloud mongodb com 上托管的 MongoDB 集群 我想使用 Atlas 这样我就不必关心 MongoDb 配置 问题是我的集群连接超时 我必须在我的 mo
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder
  • 使用泛型全面实现特征

    我正在通过实现矩阵数学来练习 Rust 但遇到了一些障碍 我定义了我认为与矩阵相关的特征 trait Matrix
  • Android:如何检测手机设置中的语言已更改

    我如何检测我的手机语言是否已更改 例如 Facebook 应用程序将向我们宣布 please wait we preparing your language i used myString Locale getDefault getDisp
  • 保存符号方程以供以后使用?

    From here http www mathworks com help releases R2011a toolbox symbolic brvfu8o 1 html brvfxem 1 我正在尝试求解这样的符号方程组 syms x y
  • android ndk 硬件调试内存

    背景 我对 C 很有经验 对 Android 和 Java 还很陌生 但这是编程的环境问题 我已经用 ANSI C 开发了一个管理应用程序 可以移植到任何操作系统 只需在依赖于操作系统的代码中添加 UI 即可 它使用相当多的内存 特别是对于
  • CUDA 中指令重放的其他原因

    这是我从 nvprof CUDA 5 5 获得的输出 Invocations Metric Name Metric Description Min Max Avg Device Tesla K40c 0 Kernel MyKernel do

随机推荐

  • HTML 列表结构中的 PHP 递归菜单

    这是 html 结构 它应该是这样的 li a href class menulink Dropdown One a ul li a href Navigation Item 1 a li li a href class sub Navig
  • Subsonic 3 Linq 投影问题

    好吧 我用这个把头撞在墙上 给定数据库中名为 Address Customer 和 CustomerType 的表 我想要显示有关客户的组合摘要信息 因此我创建一个查询来连接这两个表并检索指定的结果 var customers from c
  • C# 闭包,为什么循环变量是通过引用捕获的?

    在此示例中 我尝试按值传递 但改为传递引用 for int i 0 i lt 10 i Thread t new Thread gt new PhoneJobTest i t Start 这可以这样补救 for int i 0 i lt 1
  • javascript 创建 INcode 工作区(框架)

    如果我有一个面向公众的小 框架 我怎样才能打造自己的 工作空间 所以我可以使用我想要的任何变量名称 我怎样才能完成它 使用匿名函数包装器 使用定义的任何变量var不适用于包装器外部的代码 每当您想要定义方法或属性时 请将它们添加到tobep
  • Flutter:为什么 setState(( ) { }) 一次又一次设置数据

    I use setState 用于为变量赋值 但它一次又一次地打印 为什么会出现这样的反应呢 我该如何解决它 这是我的代码 class Sample extends StatefulWidget override SampleState c
  • Lua随机数? [复制]

    这个问题在这里已经有答案了 如何生成每次运行脚本时都不同的随机整数 我目前正在做一个 不可能的测验 它使用随机数从表格中选择一个问题 每次我运行脚本时 问题的顺序都是相同的 我还使用 table remove 在提出问题后从表中删除问题 然
  • 明确共享不适用于帖子 - Facebook Android SDK Open Graph 故事

    我目前正在使用 Facebook Android SDK 3 19 1 将开放图谱故事发布到我们用户的时间线 该故事已添加到用户的活动日志中 但不会显示在他们的时间线上 我的故事有一个自定义操作和对象 并且我已为我的操作设置了 显式共享 选
  • 如何根据R中csv文件的列标题删除某些列?

    我已将 csv 文件加载到 R 中 文件中有 10 列 我想将第 1 3 5 列保存到一个新文件中 删除其他列的命令行是什么 我想保存新表 应该使用什么命令行 首先 我来回答你的问题 如果d您的数据框是从您的文件加载的 那么 d subse
  • 什么是 32 位和 64 位 C++ 代码?

    我试图从注册表项获取一个值 最终的程序必须在 32 位和 64 位机器上运行 到目前为止的代码是 HKEY hKey LONG Result1 LONG result2 Result1 RegOpenKeyEx HKEY CLASSES R
  • C 赋值语句的求值顺序

    我遇到过跨平台代码在基本赋值语句上表现不同的情况 一个编译器首先评估左值 然后评估右值 然后评估赋值 另一个编译器首先执行右值 然后执行左值 然后进行赋值 如果左值影响右值的值 这可能会产生影响 如下例所示 struct MM int m
  • 在 HTML 中标记文本

    我有一些纯文本和html 我需要创建一个 PHP 方法 它将返回相同的 html 但使用 span class marked 在文本的任何实例之前和 span 在它之后 请注意 它应该支持 html 中的标签 例如 如果文本是blabla所
  • 将 MvvmCross 升级到 5.2 在 CustomAndroidPresenter 上显示错误

    将 MvvmCross 从 5 1 升级到 5 2 后 我的 CustomAndroidPresenter cs 抛出构建错误 是什么原因造成的 CustomAndroidPresenter cs namespace TestPrjDroi
  • 暂停和恢复可观察流,请提出更好的选择

    我需要听来自可观察对象的项目流 当出现某些条件时 将对项目执行异步任务 并且组件将处于 忙碌 状态 直到该任务完成 我想暂停处理订阅中的项目 直到该任务完成 因为后续项目的处理取决于结果 然后从序列中的下一个项目恢复 而不会造成任何损失 下
  • 我可以在 Android 操作系统应用程序中使用的数据库大小是否有限制?

    我长期以来一直想构建一个 Android 应用程序 但我只是没有时间尝试学习如何制作它 所以我将其外包给印度一家信誉良好的公司 我的应用程序是一个非常简单的数据库驱动的阅读器应用程序 最初 开发公司说我的应用创意没有问题 他们会在两周内完成
  • 雄猫。该解析器不支持规范 null 版本 null

    我尝试在 oracle linux tomcat 7 和 jdk1 7 上运行 Web 应用程序 但在 tomcat 重新启动后加载第一页时出现异常 该异常仅在第一次应用程序页面加载时发生 应用程序是在jdk1 6上开发的 在服务器上安装了
  • Powershell网站自动化按钮点击登录

    所以我是 powershell 的新手 我为了好玩构建了一些脚本 但陷入了一个我似乎无法弄清楚的脚本 我正在尝试自动单击 继续 按钮 但不知道该怎么做 我已经尝试了我能想到的一切 有任何想法吗 username username passw
  • 如何在 Google Chrome JavaScript 控制台中打印调试消息?

    如何在 Google Chrome JavaScript 控制台中打印调试消息 请注意 JavaScript 控制台与 JavaScript 调试器不同 他们有不同的语法 AFAIK 所以printJavaScript 调试器中的命令在这里
  • 如何使用 file_get_contents() 加载远程文件?

    现在这让我有点挠头 我正在尝试从远程 URL 获取文件 我可以保存本地文件的内容 但不能保存远程文件的内容 这有效 file put contents file1 xml file get contents file2 xml 这不会 fi
  • 配置中的 req_extensions 和命令行上的 -extensions 有什么区别?

    示例 openssl root ca 配置来自OpenSSL 食谱定义如下 p40 req req extensions ca ext ca ext 稍后 p43 生成根 ca 密钥 然后生成根 ca 自签名证书 openssl req n
  • 错误:无法加载默认凭据(Firebase 函数到 firestore)

    我正在尝试为 Firebase Cloud Functions 编写一个 onCall 函数 该函数在 firestore 数据库上执行高级查询任务 即根据 AutoML 自然语言检查文本查询以获取类别等 但在尝试查询来自函数的数据库 Er