【发布时间】:2018-04-04 02:03:31
【问题描述】:
我们正在从我们的 Java 应用引擎实例访问 Firestore。
非事务性请求成功,但事务失败并出现以下错误:
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 权限被拒绝错误的问题,但在这些情况下,规则更加具体。目前,这个项目甚至不需要 auth 来访问 Firestore。) p>
【问题讨论】:
-
试试
allow read, write: if true; -
@Hareesh 没有改变,不能解决问题。
标签: java firebase google-cloud-firestore gcp