【发布时间】:2020-10-26 06:48:31
【问题描述】:
我在 Expo / React Native 中使用 AWS Amplify Datastore 来使用 GraphQL 存储配置文件信息。
架构如下所示:
type User @model {
id: ID!
username: String
userPhone: String
createdAt: String
updatedAt: String
}
将其保存到数据存储区...
let input = {
id: id,
username: username,
userPhone: userPhone,
createdAt: createdAt,
}
let myDataStore = await DataStore.save(new User({input}));
一旦它被保存到数据存储区,它看起来像这样。
dataStore is User {
"_deleted": undefined,
"_lastChangedAt": undefined,
"_version": undefined,
"id": "f86d3252-7b1d-44f6-b4cd-b8a7a3a88def",
"input": Object {
"createdAt": 1593774031,
"id": "3722f35e-de54-45b2-b26e-676e2cc48160",
"userPhone": "",
"username": "One Two",
},
}
code examples 显示如何通过数据存储 ID 检索此记录
DataStore.query(User, c => c.id("eq", "f86d3252-7b1d-44f6-b4cd-b8a7a3a88def"));
但是我想通过用户 id 检索它(“id”:“3722f35e-de54-45b2-b26e-676e2cc48160”),因为用户 id 实际上是 CognitoUser 子的值随时可用。按数据存储 id 查询需要将数据存储 id 保存在 AsyncStorage、状态、上下文、redux 或其他更笨重的东西中。
这不起作用
DataStore.query(User, c => c.input.id("eq", "3722f35e-de54-45b2-b26e-676e2cc48160"));
这不起作用
DataStore.query(User, c => c.id.id("eq", "3722f35e-de54-45b2-b26e-676e2cc48160"));
我确信有一个简单的答案,但我已经在谷歌上搜索了好几天,无法弄清楚。
感谢您的帮助。
【问题讨论】:
标签: react-native aws-amplify graphql-js