Skip to main content
Version: 1.x

Updating data

Updating Documents in Firestore Eloquent Library

Updating documents in Firestore is a common operation, and the Firestore Eloquent Library in Laravel provides convenient methods to perform updates. Let's explore how to update documents using the library's features.

Update Many Documents with updateMany()

warning

Updating many documents in a collection can take a long time if there are a lot of documents in the sub collection.

The updateMany() method allows you to update multiple documents in a Firestore collection based on a specified query. You can use this method to update fields of documents that match certain conditions.

Basic Update

Let's update the age field of all documents in the users collection that have a role field with the value admin.

// Update all users with age 20 to age 25
User::where(['role', '=', 'admin'])->updateMany(['age' => 25]);

Update Multiple Fields

You can also update multiple fields of documents that match a query. Let's update the name and age fields of all documents in the users collection that have a role field with the value admin.

// Update all users with age 20 to age 25
User::where(['role', '=', 'admin'])->updateMany(['age' => 25, 'name' => 'John Doe']);

Partial Update with update()

The update() method allows you to update a single document in a Firestore collection. You can use this method to update fields of a document that match certain conditions.

Basic Update

Let's update the age field of the document with the id 1234 in the users collection.

// Update a user with the specified ID
$userId = '1234';
$user = User::find($userId);
$updatedUser = $user->update([
'age' => 30
]);

echo $updatedUser->age; // 30

Update Multiple Fields

You can also update multiple fields of a document. Let's update the status and age fields of the document with the id 1234 in the users collection.

// Update a user with the specified ID
// Update a user with the specified ID
$user = User::where(['user_id', '=', $userId])->first();
$updatedUser = $user->update([
'age' => 30,
'status' => 'inactive'
]);

echo $updatedUser->age; // 30
echo $updatedUser->status; // inactive

// Update a user with the specified ID
$user = User::where(['user_id', '=', $userId])->firstOrFail();
$updatedUser = $user->update([
'age' => 30,
'status' => 'inactive'
]);

echo $updatedUser->age; // 30
echo $updatedUser->status; // inactive