gpt4 book ai didi

android - Google Cloud Datastore/Mobile Backend Starter - update/updateAll 调用权限失败

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:45 25 4
gpt4 key购买 nike

使用 Mobile Backend Starter (MBS) Android 类(在 Google Dev Console 中创建新项目并在 Google I/O 2013 上演示时作为示例项目分发的类)我能够将新实体插入云数据存储通过调用 CloudBackendMessaging.insertAll 或 .updateAll。如果实体不存在,后者将创建实体,因此看起来在功能上与插入新记录相同。

插入/创建工作正常。但是,当我尝试更新数据存储中的现有条目时,我收到了权限错误,例如(来自后端日志)

Method: mobilebackend.endpointV1.updateAll

Error Code: 401

Reason: required

Message: Insuffient permission for updating a CloudEntity: XXXXXX by: USER: YYYYYYY

这会导致 logcat 客户端出现匹配访问错误。

在所有情况下,我都使用有效的 Google 帐户(我自己的帐户)进行安全访问身份验证。

因此,插入的实体显示为我的用户 ID“拥有”,“更新者”和“创建者”显示我的 Google 帐户的电子邮件地址。

但是,当更新现有记录时,使用完全相同的 CloudBackendMessenger 对象并因此使用相同的凭据等。后端告诉我由于权限问题无法更新。但可以肯定的是,如果我只是用相同的凭据创建实体,那肯定是不正确的?查看文档,似乎我应该能够在所有情况下编辑同一用户 ID 拥有的实体(无论 KindName 是什么,也不管它是前置的 [public]、[private] 还是什么都没有)。

任何通过 Mobile Backend Starter for Datascore 收到更新权限错误的人都可以解释一下吗?今天大部分时间我都在为此苦思冥想。

最佳答案

在使用 cloudBackendAsync.update(cloudEntity) 时,我遇到了类似的错误“更新 CloudEntity 的权限不足”。我通过确保 cloudEntity 具有它的 createdAt 字段集来解决它。 createdAt 是自动生成的,我认为我不应该碰它。但这对我有用。就我而言,我首先获取云实体列表。这是我获得云实体的 createdAt 字段的时间。然后,当我更新时,我从以前获得的实体中设置 createdAt 字段。编辑:也必须为所有者字段做类似的事情。

关于android - Google Cloud Datastore/Mobile Backend Starter - update/updateAll 调用权限失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com