firebase 云函数 context.auth 字段是否适用于 firestore? [复制]

2023-12-02

使用firestore时是否可以通过context.auth属性获取触发云功能的用户的uid?

exports.updateReport = functions.firestore
.document('groups/{groupId}/reports/{nursingId}')
.onUpdate((change, context) => {
    const uid : string | undefined = context.auth?.uid;
})

我发现很多关于同一问题的老问题有许多不同的答案。 (该功能有效,该功能有时会工作,或者该功能永远不会工作)

在我的本地设置中我context.auth总是未定义,所以我不知道我是否犯了错误,或者它根本不起作用。如果是这样的话,是否有其他安全的方式来获取触发相应云功能的用户的uid?


不,这是不可能的火库云功能:对于这些云功能context参数不包含触发该功能的用户的身份验证信息。

请注意,可以使用实时数据库云函数:它们为通过以下方式触发该函数的用户提供身份验证信息context范围。


一种解决方法是在 Firestore 文档中添加一个包含用户 uid 的字段。

如果您使用此解决方法,根据您的具体用例(您在问题中写了“是否有其他安全方法”),您可以编写一个安全规则验证来检查该字段是否包含用户的 uid(例如request.resource.data.userId == request.auth.uid).

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

firebase 云函数 context.auth 字段是否适用于 firestore? [复制] 的相关文章

随机推荐

  • 在 C# 中读取 mbox 文件

    我们的一名工作人员丢失了他的邮箱 但幸运的是 他以 mbox 格式转储了他的电子邮件 我需要以某种方式获取 mbox 文件内的所有消息并将它们注入我们的技术支持数据库 因为它是自定义工具 所以没有可用的导入工具 我找到了SharpMime工
  • Android中调用Web API并接收返回值

    我用谷歌搜索了这些主题 但没有得到任何有用的信息 我想在我的 android 项目中使用 Web API 但不知道如何从 android 或 java 调用它们 我有一些 WEB APIthis网站并想在我的 android 项目中使用 例
  • vb.net 中的 Google recaptcha v2 加密

    我正在尝试实现 Google Recaptcha v2 的安全令牌版本 我已经成功实现了单站点版本 问题是我们需要多个域来使用相同的密钥进行验证 继文档在这里 让我摸不着头脑 对于新用户 我 来说 加密您的字符串 区域有点模糊 我尝试过使用
  • 如何使用 NUnit 和 Rhino Mocks 模拟 HttpContext.Current.Items

    我在用着NUnit and RhinoMocks用于 WebApi 项目的单元测试 我正在尝试编写一个测试方法 该方法应该向 HttpContext Current Items 添加一个项目 public override void OnA
  • 小吃栏堆栈将始终仅显示最后一个小吃栏

    The Snackbar make show 只会显示最后一个小吃店 与吐司不同 其他小吃店都消失了 for int i 1 i lt 11 i Snackbar make number i Snackbar LENGTH SHORT sh
  • 作为博客发布一部分的图像/徽标的微数据错误

    我在使用 Google 结构化数据测试工具获取发布商徽标和博客文章图像进行验证时遇到问题 我目前拥有的一些示例标记是
  • 如何查看我的表单当前是否位于其他表单之上?

    基本上 我如何判断我的程序是否位于所有其他程序之上 一个相当简单的方法是 P Invoke获取前景窗口 并比较返回到应用程序的form Handle属性的HWND using System using System Runtime Inte
  • xcode 中阿拉伯字符串反转

    我的 Xcode 有问题 例如我要NSLog 当我写的时候它会显示NSLog 他们是相反的 我要的是阿拉伯语和波斯语 tnx 实际上它是编辑器的问题 所以更改编辑器 就像我在中打开文件一样TextEdit并写了阿拉伯语和波斯语 这对我来说是
  • 某种类型元素的 JS 事件监听器?

    有没有办法为某种类型的 html 元素添加某种监听器 例如 如果我想在用户单击时调用一个函数anyp元素 最简单的答案是使用addEventListener 如果你想要一个特定的 html 标签 就像我想要的那样我的问题那么你会在那里找到答
  • 如何在Hibernate/JPA中为每个持久单元执行differnet import.sql?

    我在 JPA Hibernate 配置中配置了两个持久性单元 现在我需要为每个持久单元执行不同的 import sql 如何指定应为每个持久性单元执行哪个 import sql 根据 Hibernate 的文档 我应该将 import sq
  • HTML5 Boilerplate jQuery 库后备如何工作?

    这是一个关于 html5 样板和 javascript 的初学者问题 但我似乎无法在任何地方找到答案 所以这里是
  • AngularJS:自定义过滤器和 ng-repeat

    我是 AngularJS 新手 我正在构建一个小型概念验证汽车租赁列表应用程序 该应用程序提取一些 JSON 并通过 ng repeat 和几个过滤器呈现该数据的各种位
  • WSO2ESB 是否可以使用标头发送电子邮件

    我希望使用 Header mediator 向我的客户发送电子邮件 是否可以这样做 我的代理是这样的
  • Java:使用unicode上划线显示平方根时字符串的长度?

    在 Java 中 我创建了一个使用 unicode 和上划线的字符串 因为我试图显示数字的平方根 我需要知道某些格式问题的字符串长度 当在 unicode 中使用组合字符时 查找字符串长度的常用方法似乎失败 如以下示例所示 任何人都可以帮我
  • 解包函数返回到 pandas 数据框列

    我有一个现有的数据框 radar locations 其中包含 除其他外 纬度和经度坐标 对于该信息 我需要添加国家 地区和州列 因此我编写了一个函数来执行反向地理编码并返回所需的两个值return geodata state geodat
  • Android 版 Chrome 和桌面版 Chrome 有什么区别?

    我知道两者都使用相同的 webkit 版本 537 36 并且都使用相同的 javascript 引擎 V8 但是它们之间还有其他主要区别吗 我有一个网络应用程序 可以对桌面 Chrome 进行自动测试 但对 Android 上的 Chro
  • Python 中 matplotlib 和 seaborn 之间的绘图不一致

    我正在尝试使用添加错误栏plt errorbar to a pointplot在海博恩 import matplotlib import matplotlib pylab as plt import seaborn as sns impor
  • 用于连接和删除公共前缀的 SQL 查询

    我有一些数据 id ref 1 3536757616 1 3536757617 1 3536757618 并想要得到结果 1 3536757616 7 8 所以本质上数据是在 id 上聚合的 引用连接在一起 用斜杠 分隔 但删除了任何公共前
  • 如何获取 perl 系统调用的 CPU 时间?

    我有一个 perl 脚本 它使用以下命令调用外部可执行文件system 我想测量这些外部程序占用的 CPU 秒数 理想情况下 我想使用内置的 shell 来运行它们time命令 这是在 Linux 系统上 像这样的东西 system tim
  • firebase 云函数 context.auth 字段是否适用于 firestore? [复制]

    这个问题在这里已经有答案了 使用firestore时是否可以通过context auth属性获取触发云功能的用户的uid exports updateReport functions firestore document groups gr