Code Monkey home page Code Monkey logo

Comments (5)

Glognus avatar Glognus commented on June 13, 2024 1

Hi @chrisbonifacio, it return the same result with basicinfos null, i need to use it for my app at least optimistic or merge conflict resolution.
Thanks !

from amplify-js.

chrisbonifacio avatar chrisbonifacio commented on June 13, 2024 1

Hi @Glognus thank you for the update.

Unfortunately I haven't been able to reproduce this issue.

I tried with the following schema

# This "input" configures a global authorization rule to enable public access to
# all models in this schema. Learn more about authorization rules here: https://docs.amplify.aws/cli/graphql/authorization-rules
input AMPLIFY {
  globalAuthRule: AuthRule = { allow: public }
} # FOR TESTING ONLY!
type User @model @auth(rules: [{ allow: private }, { allow: owner }]) {
  id: ID!
  name: String!
  basicInfos: BasicInfos @hasOne
}

enum Gender {
  MALE
  FEMALE
}

type BasicInfos @model @auth(rules: [{ allow: private }, { allow: owner }]) {
  id: ID!
  gender: Gender
}

I created a BasicInfo record, then a User with a basicInfoId to make the relationship.
I received both the User record and BasicInfo nested data on mutation

Screenshot 2024-03-22 at 8 59 59 AM

I then tried the same GetUser query and received the same response with nested data.

Screenshot 2024-03-22 at 9 01 03 AM

Can you share how you are creating the records? Are you making sure to include a _version in the mutation arguments when creating a User? This is required for DataStore-enabled APIs (conflict detection enabled) and not including the version can result in no update to the record.

If you are creating a user first, then a BasicInfo, and finally updating a User with the basicInfoId, this might explain why disabling conflict detection results in updates seeming to work normally and able to retrieve the updated User record.

But to be sure, we'd have to see how you are trying to establish the connection between the records.

from amplify-js.

Glognus avatar Glognus commented on June 13, 2024

I've discovered a potential lead on the issue, It appears to be related to conflict resolution settings. Disabling conflict resolution on my API allows the nested relational data to be correctly fetched.

This suggests a potential bug or interoperability issue between AWS Amplify DataStore and AWS Amplify API when conflict resolution is enabled. It seems to interfere with fetching and returning nested relational data.

Is there a workaround or a fix planned for this issue? Any guidance would be appreciated.

from amplify-js.

chrisbonifacio avatar chrisbonifacio commented on June 13, 2024

Hi @Glognus thanks for raising this issue and providing detailed repro steps! Can you try running the same query in the AppSync console with conflict resolution enabled? This will help rule out whether the DataStore client is the source of the issue.

We'll try to reproduce this internally with the steps given and provide an update soon.

Also, inconsequential to the issue, but were you using conflict detection/resolution purposely? Or do you not need it in your application?

from amplify-js.

chrisbonifacio avatar chrisbonifacio commented on June 13, 2024

Hi 👋 Closing this as we have not heard back from you. If you are still experiencing this issue and in need of assistance, please feel free to comment and provide us with any information previously requested by our team members so we can re-open this issue and be better able to assist you.

Thank you!

from amplify-js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.