Bird
Raised Fist0
Firebasecloud~10 mins

Deleting fields in Firebase - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Deleting fields
Start with document
↓
Specify field to delete
↓
Apply delete operation
↓
Field removed from document
↓
Save updated document
This flow shows how a field is removed from a document by specifying it and applying a delete operation, then saving the updated document.
Execution Sample
Firebase
docRef.update({
  fieldToDelete: firebase.firestore.FieldValue.delete()
});
This code deletes the field named 'fieldToDelete' from the document referenced by docRef.
Process Table
StepActionField State BeforeOperationField State After
1Start with document{fieldToDelete: 'value', otherField: 123}None{fieldToDelete: 'value', otherField: 123}
2Specify field to delete{fieldToDelete: 'value', otherField: 123}Mark for deletionMarked for deletion
3Apply delete operationMarked for deletionDelete fieldToDeleteField removed
4Save updated document{otherField: 123}Save{otherField: 123}
💡 Field 'fieldToDelete' is removed; document saved without it.
Status Tracker
VariableStartAfter Step 2After Step 3Final
documentData{fieldToDelete: 'value', otherField: 123}{fieldToDelete: 'value', otherField: 123}{otherField: 123}{otherField: 123}
Key Moments - 2 Insights
Why does the field still appear before saving?
Before saving (Step 3), the field is only marked for deletion but still exists in memory. It is removed only after the update operation completes and the document is saved (Step 4).
Can we delete multiple fields at once?
Yes, you can specify multiple fields with delete operations in the update call. Each field marked with FieldValue.delete() will be removed together.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the state of 'fieldToDelete' after Step 2?
AField removed from document
BField marked for deletion but still present
CField unchanged
DField value updated
💡 Hint
Check the 'Field State After' column for Step 2 in the execution table.
At which step does the field actually get removed from the document?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look at the 'Operation' and 'Field State After' columns in the execution table.
If you want to delete two fields at once, how would the update call change?
APass both fields with FieldValue.delete() in one update call
BCall update twice, once per field
CUse set() instead of update()
DDelete fields manually in the database UI
💡 Hint
Refer to the key moment about deleting multiple fields.
Concept Snapshot
Deleting fields in Firebase:
- Use update() with FieldValue.delete() on the field.
- Field is marked for deletion, then removed on save.
- Multiple fields can be deleted in one update.
- Document updates atomically without the deleted fields.
Full Transcript
This visual execution shows how to delete a field from a Firebase document. First, the document contains the field. Then, the field is specified for deletion using FieldValue.delete(). The field is marked for deletion but still present in memory until the update operation completes. After applying the delete operation, the field is removed from the document. Finally, the updated document is saved without the deleted field. Multiple fields can be deleted at once by including them in the update call with FieldValue.delete().

Practice

(1/5)
1. What does the deleteField() function do in Firebase Firestore?
easy
A. It deletes the entire document.
B. It removes a specific field from a document.
C. It adds a new field to a document.
D. It updates the value of a field.

Solution

  1. Step 1: Understand the purpose of deleteField()

    This function is designed to remove a specific field from a Firestore document without deleting the whole document.
  2. Step 2: Differentiate from other operations

    Deleting a document removes all data, adding or updating changes or adds fields, but deleteField() only removes one field.
  3. Final Answer:

    It removes a specific field from a document. -> Option B
  4. Quick Check:

    deleteField() removes fields = A [OK]
Hint: Remember: deleteField() targets one field, not whole document [OK]
Common Mistakes:
  • Confusing field deletion with document deletion
  • Thinking deleteField() adds or updates fields
  • Assuming deleteField() works on collections
2. Which of the following is the correct syntax to delete a field named age from a Firestore document using updateDoc?
easy
A. updateDoc(docRef, deleteField('age'));
B. updateDoc(docRef, { deleteField: 'age' });
C. updateDoc(docRef, { age: null });
D. updateDoc(docRef, { age: deleteField() });

Solution

  1. Step 1: Recall the correct usage of deleteField()

    The function is used as a value in the update object for the field to delete, like { fieldName: deleteField() }.
  2. Step 2: Check each option's syntax

    updateDoc(docRef, { age: deleteField() }); correctly uses age: deleteField(). updateDoc(docRef, { deleteField: 'age' }); wrongly uses the function name as a key. updateDoc(docRef, { age: null }); sets the field to null, which does not delete it. updateDoc(docRef, deleteField('age')); incorrectly passes the field name as an argument to deleteField().
  3. Final Answer:

    updateDoc(docRef, { age: deleteField() }); -> Option D
  4. Quick Check:

    Use field: deleteField() inside updateDoc = A [OK]
Hint: Use field name as key and deleteField() as value [OK]
Common Mistakes:
  • Passing field name as argument to deleteField()
  • Setting field to null instead of deleting
  • Using deleteField as a key instead of a function
3. Given the following code snippet, what will be the content of the document after execution?
const docRef = doc(db, 'users', 'user1');
await updateDoc(docRef, { city: deleteField() });

Assuming the document initially has fields: { name: 'Anna', city: 'Paris', age: 30 }
medium
A. { name: 'Anna', city: 'Paris', age: 30 }
B. { name: 'Anna', city: null, age: 30 }
C. { name: 'Anna', age: 30 }
D. Document deleted

Solution

  1. Step 1: Understand what deleteField() does in updateDoc

    It removes the specified field from the document, so city will be removed.
  2. Step 2: Analyze the document after update

    Original fields are name, city, and age. After deletion, city is gone, leaving name and age.
  3. Final Answer:

    { name: 'Anna', age: 30 } -> Option C
  4. Quick Check:

    deleteField() removes field = { name, age } [OK]
Hint: Deleted fields disappear completely, not set to null [OK]
Common Mistakes:
  • Thinking deleted fields become null
  • Assuming document is deleted
  • Believing field value remains unchanged
4. You wrote this code to delete the field status from a Firestore document:
await updateDoc(docRef, { deleteField('status') });

Why does this code cause an error?
medium
A. Because deleteField must be used as a value, not as a key.
B. Because updateDoc cannot delete fields.
C. Because deleteField requires the document reference as argument.
D. Because status field does not exist.

Solution

  1. Step 1: Identify the syntax error in the update object

    The object passed to updateDoc must have keys as field names and values as the new values or deleteField(). Here, deleteField('status') is used as a key, which is invalid.
  2. Step 2: Correct usage of deleteField()

    The correct syntax is { status: deleteField() }, where status is the key and deleteField() is the value.
  3. Final Answer:

    Because deleteField must be used as a value, not as a key. -> Option A
  4. Quick Check:

    Field name as key, deleteField() as value = D [OK]
Hint: Use field name as key, deleteField() as value in updateDoc [OK]
Common Mistakes:
  • Using deleteField() as key instead of value
  • Passing arguments to deleteField()
  • Assuming updateDoc can't delete fields
5. You want to remove multiple fields phone and address from a Firestore document in a single update. Which code snippet correctly deletes both fields?
hard
A. await updateDoc(docRef, { phone: deleteField(), address: deleteField() });
B. await updateDoc(docRef, { deleteField('phone'), deleteField('address') });
C. await updateDoc(docRef, { phone: null, address: null });
D. await updateDoc(docRef, deleteField(['phone', 'address']));

Solution

  1. Step 1: Understand how to delete multiple fields

    Each field to delete must be a key in the update object with deleteField() as its value.
  2. Step 2: Evaluate each option

    await updateDoc(docRef, { phone: deleteField(), address: deleteField() }); correctly deletes both fields by specifying them separately. await updateDoc(docRef, { deleteField('phone'), deleteField('address') }); uses invalid syntax with multiple deleteField calls as keys. await updateDoc(docRef, { phone: null, address: null }); sets fields to null but does not delete them. await updateDoc(docRef, deleteField(['phone', 'address'])); incorrectly passes an array to deleteField, which is not supported.
  3. Final Answer:

    await updateDoc(docRef, { phone: deleteField(), address: deleteField() }); -> Option A
  4. Quick Check:

    Delete multiple fields by listing each with deleteField() = B [OK]
Hint: List each field with deleteField() in updateDoc object [OK]
Common Mistakes:
  • Trying to delete multiple fields with one deleteField call
  • Setting fields to null instead of deleting
  • Using deleteField as keys or passing arrays
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