Java Firestore:授予权限的事务被拒绝

Java Firestore:授予权限的事务被拒绝,java,firebase,google-cloud-firestore,gcp,Java,Firebase,Google Cloud Firestore,Gcp,我们正在从Java应用程序引擎实例访问Firestore 非事务性请求成功,但事务失败,出现以下错误: firestore:权限\被拒绝:权限缺失或不足 示例事务 据我所知,允许写操作也应该允许事务更新工作,但它们和sime get调用都不起作用 有人知道我是否缺少步骤/权限设置不正确吗 (我看到过关于Firestore权限拒绝错误的其他类似问题,但在这些情况下,规则更为具体。目前,该项目甚至不要求auth访问Firestore。)我遇到了同样的问题,但我成功地解决了它。设置一个服务帐户,并将您

我们正在从Java应用程序引擎实例访问Firestore

非事务性请求成功,但事务失败,出现以下错误:
firestore:权限\被拒绝:权限缺失或不足

示例事务

据我所知,允许写操作也应该允许事务更新工作,但它们和sime get调用都不起作用

有人知道我是否缺少步骤/权限设置不正确吗


(我看到过关于Firestore权限拒绝错误的其他类似问题,但在这些情况下,规则更为具体。目前,该项目甚至不要求auth访问Firestore。)

我遇到了同样的问题,但我成功地解决了它。设置一个服务帐户,并将您的Firestore实例指向该帐户。您可以创建服务帐户密钥。下面是一个示例代码块,显示如何使用服务帐户。服务帐户路径是包含服务帐户路径的字符串,项目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();
}

尝试
允许读、写:如果为真@Hareesh无更改,无法修复此问题。我确实尝试了此操作,但出现了其他错误。我们暂时切换到使用单独的get/update调用,而不是使用事务-当我再次访问此代码时,我将更新以告知您这是否解决了问题。
service cloud.firestore {
    match /databases/{database}/documents {
        match /{document=**} {
            allow read, write;
        }
    }
}
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();
}