Skip to content

Commit 5beb3ce

Browse files
authored
docs(firestore): add auth context trigger list and samples
2 parents b5d33b2 + b071891 commit 5beb3ce

File tree

1 file changed

+44
-1
lines changed

1 file changed

+44
-1
lines changed

README.md

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ This package provides a complete Dart implementation of Firebase Cloud Functions
1313
|-------------|--------|-----------|
1414
| **HTTPS** | ✅ Complete | `onRequest`, `onCall`, `onCallWithData` |
1515
| **Pub/Sub** | ✅ Complete | `onMessagePublished` |
16-
| **Firestore** | ✅ Complete | `onDocumentCreated`, `onDocumentUpdated`, `onDocumentDeleted`, `onDocumentWritten` |
16+
| **Firestore** | ✅ Complete | `onDocumentCreated`, `onDocumentUpdated`, `onDocumentDeleted`, `onDocumentWritten`, `onDocumentCreatedWithAuthContext`, `onDocumentUpdatedWithAuthContext`, `onDocumentDeletedWithAuthContext`, `onDocumentWrittenWithAuthContext` |
1717
| **Realtime Database** | ✅ Complete | `onValueCreated`, `onValueUpdated`, `onValueDeleted`, `onValueWritten` |
1818
| **Firebase Alerts** | ✅ Complete | Crashlytics, Billing, Performance alerts |
1919
| **Identity Platform** | ✅ Complete | `beforeUserCreated`, `beforeUserSignedIn` (+ `beforeEmailSent`, `beforeSmsSent`*) |
@@ -216,6 +216,49 @@ firebase.firestore.onDocumentCreated(
216216
print('Comment: ${event.params['commentId']}');
217217
},
218218
);
219+
220+
// With auth context (identifies the principal that triggered the write)
221+
firebase.firestore.onDocumentCreatedWithAuthContext(
222+
document: 'orders/{orderId}',
223+
(event) async {
224+
print('Auth type: ${event.authType}');
225+
print('Auth ID: ${event.authId}');
226+
final data = event.data?.data();
227+
print('Order: ${data?['product']}');
228+
},
229+
);
230+
231+
firebase.firestore.onDocumentUpdatedWithAuthContext(
232+
document: 'orders/{orderId}',
233+
(event) async {
234+
print('Updated by: ${event.authType} (${event.authId})');
235+
final before = event.data?.before?.data();
236+
final after = event.data?.after?.data();
237+
print('Before: $before');
238+
print('After: $after');
239+
},
240+
);
241+
242+
firebase.firestore.onDocumentDeletedWithAuthContext(
243+
document: 'orders/{orderId}',
244+
(event) async {
245+
print('Deleted by: ${event.authType} (${event.authId})');
246+
final data = event.data?.data();
247+
print('Deleted data: $data');
248+
},
249+
);
250+
251+
firebase.firestore.onDocumentWrittenWithAuthContext(
252+
document: 'orders/{orderId}',
253+
(event) async {
254+
print('Written by: ${event.authType} (${event.authId})');
255+
final before = event.data?.before;
256+
final after = event.data?.after;
257+
if (before == null || !before.exists) print('CREATE');
258+
else if (after == null || !after.exists) print('DELETE');
259+
else print('UPDATE');
260+
},
261+
);
219262
```
220263

221264
## Realtime Database Triggers

0 commit comments

Comments
 (0)