Google cloud firestore Firestore beginTransaction REST API在创建读写事务时返回被拒绝的权限

Google cloud firestore Firestore beginTransaction REST API在创建读写事务时返回被拒绝的权限,google-cloud-firestore,Google Cloud Firestore,我需要在事务中更新某些Firestore文档 firestore.projects.databases.documents.beginTransaction在创建读写事务时失败,但在只读事务中成功 我已经确保数据库处于测试模式,所有读写操作都处于打开状态 service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, w

我需要在事务中更新某些Firestore文档

firestore.projects.databases.documents.beginTransaction在创建读写事务时失败,但在只读事务中成功

我已经确保数据库处于测试模式,所有读写操作都处于打开状态

service cloud.firestore {
    match /databases/{database}/documents {
        match /{document=**} {
        allow read, write: if true;
        }
    }
}
(这失败了)

错误响应:

    {
        "error": {
            "code": 403,
            "message": "Missing or insufficient permissions.",
            "status": "PERMISSION_DENIED"
        }
    }
(此操作成功)-将选项更改为只读,将返回转换操作

成功回应:

    {
        "transaction": "EcMecxy5IXKoIlkAIx+ixOCJ/NT6gvpbaEwWk/5YkOxVxSeMWpOdG4H2nZGK3Y0Pmcj+lbvk6sAlw68UpFgjd8puTpyS2Vwm2X6mw2SKKKKK9OakXxkGgi+8o4vx70Qd4YQaGg=="
    }
REST API方法不支持
readWrite
事务的未验证请求


要以原子方式提交多个未经身份验证的写入,您可以使用该方法。

您如何验证您的请求,Firebase Auth或Google OAuth?只有使用Firebase Auth、.Thx时,安全规则才应影响您的请求。数据库处于测试模式,完全开放读写,所以我根本不进行身份验证。我可以成功创建、读取、更新或删除文档。我唯一不能做的事情似乎是创建一个读写事务k,理解,关于beginTransaction。thx关于提交,我一直假设在调用提交时,我总是需要传入一个事务。所以这是正确的调用流,假设我需要事务而不仅仅是原子提交:1。beginTransaction(确保我已通过身份验证)2。getDocument(从1传入读写事务)3。提交(传递事务并包括任何更新)正确,并且我相信您必须使用(而不是Firebase Auth)进行身份验证。无需担心。行。谢谢你help@Juan劳拉:你能解释一下为什么通过承载器使用firebase身份验证令牌在这里不起作用吗?我遇到了同样的问题,我尝试发送Firebase Auth令牌,就像我对其他firestoretapi所做的那样,作为头中的承载。或者有没有办法扩展Firebase身份验证令牌的范围?
    { 
        "options": {
            "readOnly": {}
        }
    }
    {
        "transaction": "EcMecxy5IXKoIlkAIx+ixOCJ/NT6gvpbaEwWk/5YkOxVxSeMWpOdG4H2nZGK3Y0Pmcj+lbvk6sAlw68UpFgjd8puTpyS2Vwm2X6mw2SKKKKK9OakXxkGgi+8o4vx70Qd4YQaGg=="
    }