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