Gaurav Raj
Gaurav Raj

Reputation: 708

Realm sync not working for embedded objects in react native

This is my collection schema on realm -

{
  "title": "testnote",
  "properties": {
    "_id": {
      "bsonType": "objectId"
    },
    "_syncPartition": {
      "bsonType": "string"
    },
    "title": {
      "bsonType": "string"
    },
    "description": {
      "bsonType": "string"
    },
    "subject": {
      "bsonType": "string"
    },
    "tags": {
      "bsonType": "array",
      "items": {
        "bsonType": "string"
      }
    },
    "pages": {
      "bsonType": "array",
      "items": {
        "title": "notespage",
        "bsonType": "object",
        "properties": {
          "type": {
            "bsonType": "string"
          },
          "data": {
            "bsonType": "string"
          }
        }
      }
    },
    "createdBy": {
      "bsonType": "string"
    }
  }
}

This is how I've declared realm schema in react native. The code to initialize the Realm connection is also added below.

static NotesPage = {
        name: "notespage",
        embedded: true,
        properties: {
            type: "string",
            data: "string"
        }
    }

    static mainSchema = {
        name: "testnote",
        properties: {
            _id: "objectId?",
            _syncPartition: "string?",
            createdBy: "string?",
            title: "string?",
            description: "string?",
            subject: "string?",
            tags: "string[]",
            pages: { type: "list", objectType: "notespage" }
        },
        primaryKey: "_id"
    };

       const sampleNotesConfig = {
            schema: [mainSchema NotesPage],
            sync: {
                user,
                partitionValue: notesPartition,
                newRealmFileBehavior: OpenRealmBehaviorConfiguration,
                existingRealmFileBehavior: OpenRealmBehaviorConfiguration
            }
        };


        Realm.open(sampleNotesConfig).then((notesRealm) => {
            //// Some relevant code
            
        }).catch((reason) => {
            console.log("Error initializing realm");
            console.log(reason);
        });

When I create the realm object, it gets inserted in the local realm file but never gets synced to the server. I don't see any server errors or errors in local.

notesRealm.write(() => {
                
                notesRealm.create(
                    SampleNote.schema.name, 
                    {
                     "subject": "History",
                     "title": "Local to Remote Note 10",
                     "description": "Local to Remote Note 10 Description",
                     "tags": ["Tag 1", "Tag 2", "Tag 3"],
                     "pages": [{"type": "COVER_PAGE", "data": "Data 1"}, { "type": "PARAGRAPH", "data": "Data 2"}]

                });
               
            });

I have checked following things -

Upvotes: 1

Views: 428

Answers (0)

Related Questions