Firestore:授予权限的交易被拒绝

2023-12-19

我们正在访问火库来自我们的 Java 应用程序引擎实例。

非事务性请求成功成功,但事务性请求失败并出现错误:firestore: PERMISSION_DENIED: Missing or insufficient permissions

交易示例

final long updatedValue = 15;

Firestore db = firebaseManager.getFirestore();
CollectionReference fooCollectionRef = db.collection(SOME_COLLECTION);
DocumentReference fooDocumentRef = fooCollectionRef.document(fooId);

final ApiFuture<Long> future = db.runTransaction(transaction -> {
    DocumentSnapshot snapshot = transaction.get(fooDocumentRef).get();
    transaction.update(fooDocumentRef, SOME_FIELD, updatedValue);
    return updatedValue;
});
return future.get();

据我所知,我们对开发项目的权限是完全开放的:

service cloud.firestore {
    match /databases/{database}/documents {
        match /{document=**} {
            allow read, write;
        }
    }
}

根据我读到的内容,允许writes还应该允许事务更新工作,但它们和 sime 都不是get通话正常。

有谁知道我是否缺少一个步骤/设置了不正确的权限?

(我见过其他关于 Firestore 权限被拒绝错误的类似问题,但在这些情况下,规则更加具体。目前,该项目甚至不需要身份验证即可访问 Firestore。)


我遇到了同样的问题,但我设法解决了它。设置一个服务帐户并将您的 Firestore 实例指向该帐户。您可以创建服务帐户密钥here https://console.cloud.google.com/projectselector/apis/credentials。下面是一个示例代码块,展示了如何使用服务帐户。 SERVICE_ACCOUNT_PATH 是一个包含服务帐户路径的字符串,PROJECT_ID 是一个包含您的项目 ID 的字符串。

private static void authenticate() throws Exception {
     FirestoreOptions firestoreOptions = FirestoreOptions.newBuilder()
          .setCredentials(ServiceAccountCredentials.fromStream(new FileInputStream(SERVICE_ACCOUNT_PATH)))
          .setProjectId(PROJECT_ID).build();

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

Firestore:授予权限的交易被拒绝 的相关文章

  • 检查发送到网页的请求数

    我正在编写一个 Java 多线程应用程序 它可以访问不同 Web 服务器的数百万个 有时甚至数十亿个 URL 这个想法是检查这些 URL 是否给出有效的 200OK 响应或 404 其他代码 我如何知道我的程序是否不会在他们的服务器上造成高
  • 通过 html tidy 提供渲染 jsp 页面

    我有一个在 Glassfish 上运行的 Java 项目 它会呈现一些难看的 HTML 这是使用各种内部和外部 JSP 库的副作用 我想设置某种渲染后过滤器 通过 HTMLTidy 提供最终的 HTML 这样源代码就很好且整洁 有助于调试
  • Java中的文字赋值[重复]

    这个问题在这里已经有答案了 定义上有什么区别 double example 23 1d or double example 23 1 为什么long float double可以以l f d结尾 之间没有区别double example 2
  • Spring boot 2.0.5.RELEASE和mongo 4.0连接问题

    我正在关注使用 MongoDB 访问数据教程春季网站 https spring io guides gs accessing data mongodb 我将 Mongo DB 服务器版本 4 安装为服务当我使用客户端连接到它时 它的身份验证
  • 使用正则表达式验证输入字符串是否为 0-255 之间的数字

    我在将输入字符串与正则表达式匹配时遇到问题 我想验证输入数字在 0 255 之间并且长度最多应为 3 个字符 代码工作正常 但当我输入 000000 至任意长度时 显示 true 而不是 false 这是我的代码 String IP 000
  • Glassfish:在部署期间修改 EAR 的部署描述符

    经过几天的搜索 尝试和摇头 我将这个问题发布到 SO 尽管它seems已经得到答复 这是场景 我有一个 EAR 应用程序 目前 包含一个 WAR 和一个 EJB 模块 EJB 模块使用 JPA persistence xml 并且一些无状态
  • 全静态方法和应用单例模式有什么区别?

    我正在创建一个数据库来存储有关我的网站用户的信息 我正在使用 stuts2 因此使用 Java EE 技术 对于数据库 我将创建一个 DBManager 我应该在这里应用单例模式还是将其所有方法设为静态 我将使用这个 DBManager 进
  • 从字符串生成密钥?

    我需要从字符串生成一个密钥 以便我始终可以从同一字符串创建相同的密钥 具体来说是一个Key对象 这样我就可以用它来创建Cipher进而创建SealedObject 这在 Java 中可行吗 我应该考虑什么类 方法组合才能做到这一点 对于 A
  • AffineTransform.rotate() - 如何同时缩放、旋转和缩放?

    我有以下代码 它可以完成我想要绘制一个上面有一些棋子的棋盘的 第一部分 Image pieceImage getImage currentPiece int pieceHeight pieceImage getHeight null dou
  • 我需要一个字数统计程序[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要弄清
  • vm 参数中的 -D 是什么,它表示为什么我们必须在 vm 参数中始终指定 -D

    vm 参数中的 D 是什么 它表示为什么我们必须在 vm 参数中始终指定 D 有什么标准吗 如果是 那是什么以及指定的位置 D 设置当前运行的 java 程序可以访问的属性值 它允许程序员设置程序运行所需的值 但程序不知道这些值是什么 因此
  • 无法自动装配 org.springframework.mail.javamail.JavaMailSender

    尝试运行我的应用程序时遇到以下问题 所有的东西都调试过了 还是一无所获 IDE 毫无问题地找到了 bean 所以我对这里发生的情况感到非常困惑 SEVERE Exception sending context initialized eve
  • java中日期转换dd-MMM-yyyy到dd-MM-yyyy

    在Java中将23 Mar 2011转换为23 03 2011的最简单方法是什么 感谢大家 这似乎解决了这个问题 try Calendar cal Calendar getInstance cal setTime new SimpleDat
  • Java 不可变对象 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在学习不变性的概念 据我了解 一旦创建对象 不可变对象就无法更改其值 但我不明白不可变对象的以下用途 They are 自动是线程
  • Java 中更高级的泛型

    假设我有以下课程 public class FixExpr Expr
  • 如何在速度模板中检索哈希图值

    如何从速度模板中的以下哈希图中检索值 请帮忙 LinkedHashMap
  • 如何使 JScrollPane 与嵌套 JPanel 一起正常工作?

    我正在使用 NetBeans 在 Java 中构建 Swing 应用程序 但我遇到布局问题 我的主框架包含一个JScrollPane其中包含一个JPanel called contentPanel其中又包含一个JPanel called l
  • 如何列出Resources文件夹中的所有文件(java/scala)

    我正在编写一个函数 需要访问资源中的文件夹 并循环遍历所有文件名 如果这些文件符合条件 则加载这些文件 new File getClass getResource images sprites getPath listFiles 返回空指针
  • AndroidAnnotations 和 Dagger

    我正在尝试使用 Dagger 注入 Android 带注释的 Activity java lang IllegalArgumentException No inject registered for members com app serv
  • 在没有EOF的情况下停止读取java中的输入

    In 问题 如何停止读取输入 我的程序继续运行 要求更多输入 public static void main String args throws Exception BufferedReader br new BufferedReader

随机推荐

  • 如何调整 PyQt4 中 QMenuBar 的大小以适应 4K 显示

    我需要用 Python 编写一个带有用户界面的应用程序 我决定使用 PyQt4 来制作 GUI 它包含在 Python 的 Anaconda 发行版中 让 GUI 在 4K 显示器上流畅运行并非易事 默认情况下 大多数组件都太小 有些组件
  • 无法安装 vim 表格插件

    没有安装说明tabular https github com godlygeek tabular插入 我尝试将文件复制到正确的文件夹中 或者放入 vim bundle为了让病原体处理它 在这两种情况下 当我加载 vim 时 我都会收到以下错
  • HTML img src 位于根文件夹之外

    我试图引用源文件夹外部的图像文件 目前的结构是 Images img1 png My Source Folder Page 1 index html 从index html 文件中 我想引用img1 png 文件 我尝试了以下代码 img
  • IDLE 的子进程未建立连接。 IDLE 无法启动或个人防火墙软件阻止连接

    我尝试卸载它并搜索其他答案 它们都没有起作用 IDLE 打开 但我无法运行我编写的任何内容 在 Windows 10 中 1 输入 受控文件夹访问 2 选择 允许应用程序通过受控文件夹访问 对 UAC 选择 是 3 单击 添加允许的应用程序
  • java.lang.Math.PI 等于 GCC 的 M_PI 吗?

    我正在用 Java 和 C C 编写一些参考算法 其中一些算法使用 我希望每个算法的两种实现都能产生完全相同的结果 没有不同的舍入 迄今为止一直有效的一种方法是使用自定义的pi常量 在两种语言中完全相同 例如 3 14159 然而 当 Ja
  • 如何在 matplotlib 中创建具有垂直阴影的绘图[重复]

    这个问题在这里已经有答案了 I want to be able to replicate the following plot x 轴上有时间 y 轴上有 GDP GDP 线只是每日时间历史 无论其值如何 而衰退数据具有以下结构 从 1 1
  • ngrx 影响错误处理

    我有一个关于 ngrx效果的非常基本的问题 如何忽略效果执行期间发生的错误 使其不影响将来的效果执行 我的情况如下 我有一个动作 登录 和一个监听该动作的效果 如果此效果中发生错误 我想忽略它 当发生此错误后第二次调度 LOGIN 时 应再
  • MJML - 模板插值、动态数据、上下文

    经过大量搜索后 我很难找到如何 MJML https mjml io 处理动态数据和模板插值 我期待类似的事情 import mjml2html from mjml const context message Hello World con
  • 在 Flutter 中使用新版本更新(本机)Android 应用程序,同时保留数据库

    我有一个用java编写的android小应用程序 我正在使用flutter重写 是否可以通过保持 SQLite 数据库结构 包括所有数据 完整来过渡到新版本 我进行了测试 虽然我能够覆盖应用程序 但升级后数据丢失了 如果有人需要它 我可以从
  • 自定义视图转换为位图返回黑色图像

    我需要创建一个自定义视图 然后将其保存为 png 文件到 SD 卡中 现在我在 SD 卡中获取黑色图像 我无法在代码中找出问题所在 谁能帮我一下 布局文件
  • Visual Studio 2005 安装向导 - 为所有用户创建桌面快捷方式

    我正在使用安装向导项目为 Windows 窗体应用程序创建 msi 安装程序 我已将其配置为安装桌面快捷方式 但不幸的是 它仅在运行安装程序的用户的桌面上放置了一个快捷方式 有什么办法可以配置它在桌面上放置快捷方式all users 在项目
  • 尝试访问 upload.php 时,plupload 运行时返回 403 FORBIDDEN 错误

    介绍 我试图在一个可能复杂的环境中实现相对简单的事情 我想从 JavaScript 小部件上传文件 Netvibes UWA 格式 http dev netvibes com 到本地 Intranet 服务器 使用plupload jQue
  • 使用反射C#获取JsonProperty属性的名称

    我有一个关于 JsonProperties 的课程 public class MyClass JsonProperty Editor 1 public string Editor get set 我想避免在我的代码中出现魔术字符串 但我需要
  • 可以合并多个输入,每个输入都使用不同来源的 typeahead.js 吗?

    我有一个包含大量文本输入的表单 我想将其中 10 个文本输入与 Bloodhound 一起使用 typeahead js 我让它适用于其中的两个 它们都包括预取和远程数据源 但是 typeahead Bloodhound 的每个实例都有相当
  • 如何使用 Highcharts Drupal 7 模块

    如何使用 Highcharts Drupal 7 模块 我尝试使用视图集成 但设置不可用 但我看到了一个图像http drupal org files views settings png http drupal org files vie
  • Javascript、HTML 和 onClick - 函数未定义

    我正在尝试用 Javascript 制作一个指向富文本编辑器的 插入链接 按钮 基本上 它要做的就是将以下代码添加到其内容中 a href linkGoesHere textGoesHere a 问题是 someJSFunction 当用户
  • 如何使这个线程安全

    我有以下用于 Fluent NHibernate 的 SessionFactory 我收到一个错误 创建 SessionFactory 时使用了无效或不完整的配置 带有 InnerException 的 已添加具有相同密钥的项目 这个问题只
  • 通过添加当前电脑名称来批量重命名电脑

    背景 我作为分包商将数千台计算机从 xp 迁移到 7 这些计算机位于域中 我们拥有在域中添加 修改和删除计算机的管理员权限 当我们第一次接触xp机器时 我们必须在名称前面添加 delete 并重命名 例如 旧名称 pc12345 新名称 d
  • XSLT:包含()多个字符串

    我在 XSLT 中有一个名为variable name我想设置为1 如果相关产品具有名称为 A 或 B 或同时具有 A 和 B 的属性
  • Firestore:授予权限的交易被拒绝

    我们正在访问火库来自我们的 Java 应用程序引擎实例 非事务性请求成功成功 但事务性请求失败并出现错误 firestore PERMISSION DENIED Missing or insufficient permissions 交易示