【问题标题】:Amplify.DataStore.query is returning data created by all users, instead of owner onlyAmplify.DataStore.query 正在返回由所有用户创建的数据,而不仅仅是所有者
【发布时间】:2021-02-12 17:22:24
【问题描述】:

当我运行查询时,我会从所有用户(所有者)那里获取数据,而不仅仅是当前登录的所有者。我想如果我有这个:[创建、更新、删除、读取]只有所有者可以读取他们的数据?这里发生了什么?我错过了什么?

我使用相同的设备(模拟器),并且使用不同的帐户登录和退出。

Amplify.DataStore.query(Todo.class,
        all -> {
            while (all.hasNext()) {
                Todo todo1 = all.next();
                Log.i("tag", "Title: " + todo1.getName());
            }
        },
        failure -> Log.e("tag", "Query failed.", failure)
);


type Todo
@model
@auth(
  rules: [
    {
      allow: owner,
      ownerField: "owner",
      operations: [create, update, delete, read]
    }
  ]
) {
  id: ID!
  owner: String
  name: String!
}

【问题讨论】:

    标签: android aws-amplify


    【解决方案1】:

    我想我在这里找到了解决方案:

    https://docs.amplify.aws/lib/datastore/sync/q/platform/android#update-and-delete-with-predicate

    每次在同一设备上切换用户,都必须调用 Amplify.DataStore.clear()

    注意:如果多个用户共享同一设备和您的架构 定义用户特定的数据,确保你调用 切换用户时 Amplify.DataStore.clear()。访问 Auth 事件 所有与身份验证相关的事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 2015-12-10
      相关资源
      最近更新 更多