Bird
Raised Fist0
React Nativemobile~10 mins

Firestore CRUD operations in React Native - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import Firestore from Firebase in React Native.

React Native
import [1] from '@react-native-firebase/firestore';
Drag options to blanks, or click blank then click option'
Afirestore
Bdatabase
Cauth
Dstorage
Attempts:
3 left
💡 Hint
Common Mistakes
Importing 'database' instead of 'firestore'.
Confusing Firestore with Firebase Auth or Storage.
2fill in blank
medium

Complete the code to get a reference to a Firestore collection named 'users'.

React Native
const usersCollection = firestore().[1]('users');
Drag options to blanks, or click blank then click option'
Adoc
Bcollection
Cref
Dget
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'doc' which refers to a single document, not a collection.
Using 'get' which fetches data but does not return a reference.
3fill in blank
hard

Fix the error in the code to add a new document with data to the 'users' collection.

React Native
await firestore().collection('users').[1]({ name: 'Alice', age: 30 });
Drag options to blanks, or click blank then click option'
Aadd
Bget
Cupdate
Dset
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'set' without a document reference causes an error.
Using 'update' requires an existing document reference.
4fill in blank
hard

Fill both blanks to update the 'age' field of a user document with ID 'user123'.

React Native
await firestore().collection('users').[1]('user123').[2]({ age: 31 });
Drag options to blanks, or click blank then click option'
Adoc
Badd
Cupdate
Dset
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'add' instead of 'doc' to get a document reference.
Using 'set' which replaces the whole document instead of updating.
5fill in blank
hard

Fill all three blanks to delete a document with ID 'user456' from the 'users' collection.

React Native
await firestore().[1]('users').[2]('[3]').delete();
Drag options to blanks, or click blank then click option'
Acollection
Buser456
Cdoc
Dadd
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'add' instead of 'doc' to get document reference.
Passing the document ID to collection instead of doc.

Practice

(1/5)
1. What does the collection() function do in Firestore when used in React Native?
easy
A. It points to a group of documents in the database.
B. It creates a new document with data.
C. It deletes a document from the database.
D. It updates fields inside a document.

Solution

  1. Step 1: Understand Firestore data structure

    Firestore organizes data in collections which contain documents.
  2. Step 2: Role of collection()

    The collection() function points to a specific collection (group of documents) in Firestore.
  3. Final Answer:

    It points to a group of documents in the database. -> Option A
  4. Quick Check:

    collection() = points to documents group [OK]
Hint: Remember: collection() targets groups, doc() targets single items [OK]
Common Mistakes:
  • Confusing collection() with doc()
  • Thinking collection() creates data
  • Mixing update and delete operations
2. Which of the following is the correct syntax to add a new document with data to a Firestore collection named 'users'?
easy
A. await addDoc(collection(db, 'users'), {name: 'Anna', age: 25});
B. await db.collection('users').add({name: 'Anna', age: 25});
C. await setDoc(doc(db, 'users'), {name: 'Anna', age: 25});
D. await updateDoc(collection(db, 'users'), {name: 'Anna', age: 25});

Solution

  1. Step 1: Identify correct Firestore add syntax in React Native

    The addDoc function adds a new document to a collection.
  2. Step 2: Check the syntax correctness

    await addDoc(collection(db, 'users'), {name: 'Anna', age: 25}); uses addDoc(collection(db, 'users'), data) which is the correct modern syntax.
  3. Final Answer:

    await addDoc(collection(db, 'users'), {name: 'Anna', age: 25}); -> Option A
  4. Quick Check:

    Add new doc = addDoc(collection(db, 'name'), data) [OK]
Hint: Use addDoc with collection() to add new documents [OK]
Common Mistakes:
  • Using setDoc without doc() reference
  • Calling updateDoc on a collection instead of a document
  • Using deprecated syntax from older SDK versions
3. Given this code snippet, what will be logged to the console?
const docRef = doc(db, 'tasks', 'task1');
await updateDoc(docRef, {completed: true});
const docSnap = await getDoc(docRef);
console.log(docSnap.data());
medium
A. { completed: false }
B. { completed: true }
C. An error because updateDoc cannot be awaited
D. undefined

Solution

  1. Step 1: Understand updateDoc effect

    The updateDoc call sets the field completed to true in the document 'task1'.
  2. Step 2: Reading updated document data

    The getDoc fetches the updated document, so docSnap.data() returns the updated fields.
  3. Final Answer:

    { completed: true } -> Option B
  4. Quick Check:

    updateDoc changes data, getDoc reads updated data [OK]
Hint: updateDoc changes data; getDoc reads fresh data [OK]
Common Mistakes:
  • Assuming updateDoc returns data
  • Forgetting to await async calls
  • Expecting old data without re-fetching
4. Identify the error in this Firestore delete operation code:
const docRef = doc(db, 'notes', 'note1');
await deleteDoc(collection(db, 'notes', 'note1'));
medium
A. The collection path is missing a document ID.
B. doc() cannot be used to get a document reference.
C. deleteDoc must be called without await.
D. deleteDoc should receive a document reference, not a collection.

Solution

  1. Step 1: Check deleteDoc argument type

    The deleteDoc function requires a document reference, not a collection reference.
  2. Step 2: Analyze the code's argument

    The code passes collection(db, 'notes', 'note1') which is invalid because collection() does not accept a document ID.
  3. Final Answer:

    deleteDoc should receive a document reference, not a collection. -> Option D
  4. Quick Check:

    deleteDoc(docRef) not deleteDoc(collection(...)) [OK]
Hint: deleteDoc needs doc(), not collection() [OK]
Common Mistakes:
  • Passing collection() instead of doc() to deleteDoc
  • Misunderstanding collection() parameters
  • Omitting await on async calls
5. You want to update a user's profile in Firestore only if the 'age' field exists and is less than 30. Which code snippet correctly performs this conditional update?
hard
A. const docRef = doc(db, 'users', 'user1'); await updateDoc(docRef, {status: 'young'}); const docSnap = await getDoc(docRef); if (docSnap.data().age >= 30) { await deleteDoc(docRef); }
B. await updateDoc(doc(db, 'users', 'user1'), {status: 'young', age: 30});
C. const docRef = doc(db, 'users', 'user1'); const docSnap = await getDoc(docRef); if (docSnap.exists() && docSnap.data().age < 30) { await updateDoc(docRef, {status: 'young'}); }
D. const docRef = doc(db, 'users', 'user1'); await setDoc(docRef, {status: 'young'}, {merge: true});

Solution

  1. Step 1: Check for field existence and condition

    Use getDoc to read the document and verify if 'age' exists and is less than 30.
  2. Step 2: Conditionally update document

    If condition is true, call updateDoc to update the 'status' field without overwriting other data.
  3. Final Answer:

    Code snippet that reads, checks, then updates conditionally. -> Option C
  4. Quick Check:

    Read first, then update if condition true [OK]
Hint: Always read document before conditional update [OK]
Common Mistakes:
  • Updating without checking field existence
  • Using setDoc without merge causing overwrite
  • Deleting document incorrectly after update
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