Shared Object Schema

In my app,

I have a Recipe object.
And I have a User object.

I have a partition on the User id. So, every User can access a Realm that synchs all of their own recipes.

How do I enable users to share recipes with each other?
So far, the only option I am aware of is to create a new object (let’s call it a Share) that wraps a recipe for sharing and partitions on the item _id. And then, maintain a list of Share _id’s on the customUserData object. And then, open a realm for each of those Share _id’s in order to gain access to each shared recipe.

There must be a simpler way to model this?
Many recipes / Many users, but only 1 author.
Where can I get some help?

What I’m working with right now:

The user contains a list of recipe id’s for recipes that are ‘watched’.
These recipes are not under the synch partition that I’m using, so I need to query for these recipes directly by the id’s in that array.

But, now I’m struggling to expand the nested objects in the query. In my case, a recipe contains a relationship to ingredients. So, in the return from the query, I’m just getting a list of id’s as opposed to the the expanded ingredients I need.

Do I need to run another query to get all of the ingredients as well? Or is there a way to populate the nested objects in the query?