【问题标题】:Using the User API with Google Cloud Endpoint将用户 API 与 Google Cloud Endpoint 一起使用
【发布时间】:2015-05-08 07:03:02
【问题描述】:

我成功地为我的 Android 应用程序创建了一个 Google Cloud Endpoint 后端模块,并且我能够写入、读取和删除实体。但是我有一个问题,我希望我的应用程序的用户能够被唯一标识并独立存储各个实体例如,当User A 登录并保存一个实体时,它应该独立于User B 保存的内容。每个用户都可以对数据存储中的独立数据执行 CRUD 操作,而不会影响其他用户的数据。我知道这可以在 Google 的 User's APIUser class 的帮助下实现,但我必须知道如何实现它。

现在,这就是我提出Insert 请求的方式:

/**
 * Inserts a new {@code ToDo}.
 */
@ApiMethod(
        name = "insert",
        path = "todo",
        httpMethod = ApiMethod.HttpMethod.POST)
public ToDo insert(ToDo todo) {

    ofy().save().entity(todo).now();
    logger.info("Created ToDo with ID: " + todo.getEmpId());

    return ofy().load().entity(todo).now();
}

当有人存储待办事项时,它应该只对他们可用。我的应用使用Google+ login 对用户进行身份验证

【问题讨论】:

    标签: java android google-app-engine google-cloud-endpoints


    【解决方案1】:

    为了使用用户 API,只需添加一个类型为 com.google.appengine.api.users.User 的参数,GAE 将注入使用用户 API 获取的相应用户(如果未登录,则为空)您可以阅读有关它的更多信息 @987654321 @。

    然而,您实际上想要做的是为不同的用户使用不同的命名空间实现多租户应用程序,请查看this documentation,它解释了如何为每个用户设置命名空间,从而防止用户访问彼此的数据。

    【讨论】:

    • 我觉得不够清楚。我想要的基本上是所有其他应用程序所做的。您登录,保存待办事项,查看或删除它们。我登录并做同样的事情。我不'不必知道自己在做什么,也不需要知道自己在做什么。我现在拥有的是我的应用程序向应用程序引擎发出请求,并通过我公开的 API 方法获取那里的所有数据
    • 这是多租户,请查看我在回答中发送的链接。如果您不习惯使用命名空间,您只需向待办事项添加一个所有者参数并使用它进行查询。
    • 嗨@jirungaray,我已经对此进行了大量研究,多租户绝对是我想要的。问题是,文档只描述了如何在Servlet中实现它,没有任何内容或其他任何地方如何将它与云端点 API 一起使用。
    猜你喜欢
    • 2015-03-04
    • 1970-01-01
    • 2016-10-12
    • 1970-01-01
    • 2014-07-27
    • 2020-11-11
    • 2023-03-20
    • 2018-08-10
    • 2015-06-16
    相关资源
    最近更新 更多