Unable to query many to many relationship as mentioned in amplify datastore docs

Viewed 215

I am facing error while getting data from many to many relationship in amplify datastore. It was working fine but suddenly it was sending error. Below are my tables models

type Company
@model
@auth(rules: [{ allow: owner }, { allow: groups, groupsField: "invites" }]) {
id: ID!
name: String
users: [UserCompany] @connection(keyName: "byCompany", fields: ["id"])
}

type UserCompany
@model
@key(name: "byOwner", fields: ["owner"])
@key(name: "byUser", fields: ["userID", "companyID"])
@key(name: "byCompany", fields: ["companyID", "userID"])
@auth(
rules: [{ allow: owner }, { allow: groups, groupsField: "accessors" }]
 ) {
id: ID!
userID: ID
companyID: ID
user: User! @connection(fields: ["userID"])
company: Company! @connection(fields: ["companyID"])
owner: String
accessors: [String]
}

type User
@model
@aws_api_key
@aws_cognito_user_pools
@auth(
rules: [
{ allow: owner }
{ allow: groups, groupsField: "user_group" }
{ allow: groups, groupsField: "tenant_group" }
 ]
 ) {
id: ID!
company_name: String
company_address: String
contact_name: String
profile_image: String
email: String
phone: String
UserCompanys: [UserCompany]
@connection(keyName: "byUser", fields: ["id"])
owner: String
tenant_group: [String]
user_group: String
};

I was getting UserCompany like this

this.users = (await DataStore.query(UserCompany)).filter( (item) => item.user.id === id );

and it was working fine but from last Friday suddenly I am facing this error.

Error: Field user is required
at datastore.js:219
at datastore.js:276
at Array.forEach ()
at initializeInstance (datastore.js:274)
at datastore.js:284
at e.i.produce (immer.esm.js:1)
at new UserCompany (datastore.js:283)
at IndexedDBAdapter.modelInstanceCreator (datastore.js:211)
at IndexedDBAdapter.js:516
at Array.map ()
at resolvePromise (zone-evergreen.js:798)
at zone-evergreen.js:705
at rejected (tslib.es6.js:74)
at ZoneDelegate.invoke (zone-evergreen.js:364)
at Object.onInvoke (core.js:28513)
at ZoneDelegate.invoke (zone-evergreen.js:363)
at Zone.run (zone-evergreen.js:123)
at zone-evergreen.js:857
at ZoneDelegate.invokeTask (zone-evergreen.js:399)
at Object.onInvokeTask (core.js:28500)

After this error system is unable to run other functions. Is there anyway to get pivot table data of many to many relationship using Datastore.

0 Answers
Related