Bird
Raised Fist0
React Nativemobile~5 mins

Realm database in React Native - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Realm database in mobile development?
Realm is a mobile database designed for easy and fast data storage on devices. It works offline and syncs data when online.
Click to reveal answer
beginner
How do you define a schema in Realm?
A schema in Realm is a JavaScript object that describes the structure of your data, including properties and their types.
Click to reveal answer
intermediate
What is a Realm transaction?
A Realm transaction is a block of code where you can safely create, update, or delete data. Changes inside a transaction are saved together.
Click to reveal answer
intermediate
How does Realm handle offline data?
Realm stores data locally on the device, allowing apps to work offline. When online, it can sync changes with a server.
Click to reveal answer
intermediate
What is the benefit of using Realm over SQLite in React Native?
Realm offers a simpler API, live objects, reactive data, and better performance without needing complex SQL queries.
Click to reveal answer
What is the first step to use Realm in a React Native app?
AWrite SQL queries
BCreate a REST API
CInstall Redux
DDefine a schema for your data
Which method is used to write data safely in Realm?
Arealm.update()
Brealm.write()
Crealm.commit()
Drealm.save()
How does Realm keep your UI updated with data changes?
ABy using live objects that update automatically
BBy polling the database every second
CBy manual refresh only
DBy using Redux only
What happens if you try to write data outside a Realm transaction?
AAn error is thrown
BData is saved anyway
CData is lost silently
DRealm automatically creates a transaction
Which of these is NOT a Realm feature?
AOffline data storage
BLive objects and reactive updates
CAutomatic SQL query generation
DData synchronization with server
Explain how to define and use a Realm schema in a React Native app.
Think about how you describe your data and then create objects.
You got /4 concepts.
    Describe the role of transactions in Realm and why they are important.
    Consider what happens when you change data and want it saved correctly.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the primary purpose of using Realm database in a React Native app?
      easy
      A. To handle app navigation between screens
      B. To store data locally on the device for fast access
      C. To style the app's user interface
      D. To connect the app to a remote SQL server

      Solution

      1. Step 1: Understand Realm's role

        Realm is a local database designed to store data on the device itself.
      2. Step 2: Compare options

        Options A, B, and C describe unrelated functions like navigation, remote servers, and UI styling, which Realm does not handle.
      3. Final Answer:

        To store data locally on the device for fast access -> Option B
      4. Quick Check:

        Realm = local data storage [OK]
      Hint: Realm is for local data, not UI or navigation [OK]
      Common Mistakes:
      • Confusing Realm with remote databases
      • Thinking Realm manages UI or navigation
      • Assuming Realm is a cloud service
      2. Which of the following is the correct way to define a Realm schema for a Task object with a string name and a boolean completed property?
      easy
      A. const TaskSchema = {name: 'Task', properties: {name: 'string', completed: 'bool'}};
      B. const TaskSchema = {name: 'Task', properties: {name: 'string', completed: 'boolean'}};
      C. const TaskSchema = {name: 'Task', properties: {name: 'String', completed: 'Bool'}};
      D. const TaskSchema = {name: 'Task', properties: {name: String, completed: Boolean}};

      Solution

      1. Step 1: Check Realm property types

        Realm expects property types as lowercase strings like 'string' and 'bool'.
      2. Step 2: Compare options

        const TaskSchema = {name: 'Task', properties: {name: 'string', completed: 'bool'}}; uses correct lowercase strings. Options A, C, and D use incorrect types or JavaScript types instead of strings.
      3. Final Answer:

        const TaskSchema = {name: 'Task', properties: {name: 'string', completed: 'bool'}}; -> Option A
      4. Quick Check:

        Property types are lowercase strings [OK]
      Hint: Use lowercase strings for property types in schema [OK]
      Common Mistakes:
      • Using JavaScript types instead of strings
      • Capitalizing type names incorrectly
      • Omitting the 'properties' key
      3. Given the following code snippet, what will be the output of console.log(tasks.length);?
      const realm = await Realm.open({schema: [TaskSchema]});
      realm.write(() => {
        realm.create('Task', {name: 'Buy milk', completed: false});
        realm.create('Task', {name: 'Walk dog', completed: true});
      });
      const tasks = realm.objects('Task');
      console.log(tasks.length);
      medium
      A. 0
      B. 1
      C. 2
      D. Undefined

      Solution

      1. Step 1: Analyze write transaction

        Two Task objects are created inside the write block, so two entries are added.
      2. Step 2: Check objects query

        realm.objects('Task') returns all Task objects, so length should be 2.
      3. Final Answer:

        2 -> Option C
      4. Quick Check:

        Created 2 tasks, length = 2 [OK]
      Hint: Count created objects inside write block [OK]
      Common Mistakes:
      • Forgetting to use write block for create
      • Assuming objects() returns empty before commit
      • Confusing length with undefined
      4. What is wrong with this Realm write transaction code? (Assume the TaskSchema defines name as the primary key)
      realm.write(() => {
        realm.create('Task', {name: 'Read book', completed: false});
      });
      realm.write(() => {
        realm.create('Task', {name: 'Read book', completed: true});
      });
      medium
      A. The second create will throw an error because a Task with the same primary key already exists
      B. You cannot call realm.write() more than once
      C. The second create will update the existing object automatically
      D. There is no error; this code works fine

      Solution

      1. Step 1: Check schema requirements

        With name as primary key, creating an object with the same primary key without update flag causes error.
      2. Step 2: Analyze code behavior

        The first create succeeds. The second create uses the same name (primary key) without update flag, so it throws an error.
      3. Final Answer:

        The second create will throw an error because a Task with the same primary key already exists -> Option A
      4. Quick Check:

        Duplicate primary key without update flag causes error [OK]
      Hint: Use primary key and update flag to avoid create errors [OK]
      Common Mistakes:
      • Assuming multiple writes are forbidden
      • Thinking create auto-updates without flags
      • Ignoring primary key requirements
      5. You want to update the completed status of a Task object named 'Laundry' to true. (Assume the Task schema defines name as the primary key) Which code snippet correctly performs this update in Realm?
      hard
      A. realm.write(() => { realm.objects('Task').filtered('name == "Laundry"').completed = true; });
      B. realm.write(() => { realm.create('Task', {name: 'Laundry', completed: true}); });
      C. realm.write(() => { realm.update('Task', {name: 'Laundry', completed: true}); });
      D. realm.write(() => { realm.create('Task', {name: 'Laundry', completed: true}, true); });

      Solution

      1. Step 1: Understand update with create

        Realm updates existing objects if you pass true as the third argument to create.
      2. Step 2: Check each option

        realm.write(() => { realm.create('Task', {name: 'Laundry', completed: true}, true); }); uses true flag correctly. realm.write(() => { realm.create('Task', {name: 'Laundry', completed: true}); }); tries to create without update flag, causing error. realm.write(() => { realm.objects('Task').filtered('name == "Laundry"').completed = true; }); tries to assign directly to filtered results, which is invalid. realm.write(() => { realm.update('Task', {name: 'Laundry', completed: true}); }); uses a non-existent update method.
      3. Final Answer:

        realm.write(() => { realm.create('Task', {name: 'Laundry', completed: true}, true); }); -> Option D
      4. Quick Check:

        Use create with true flag to update [OK]
      Hint: Use true flag in create to update existing objects [OK]
      Common Mistakes:
      • Forgetting the update flag for updates
      • Trying to assign directly to query results
      • Using non-existent Realm methods
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard