@@ -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