You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Description**: Adds new users from Firebase Authentication to a specified Mailchimp audience.
4
4
5
-
**DESCRIPTION**: Adds new users from Firebase Authentication to a specified Mailchimp audience.
6
5
7
6
7
+
**Details**: Use this extension to add new users to an existing [Mailchimp](https://mailchimp.com) audience.
8
8
9
-
**CONFIGURATION PARAMETERS:**
9
+
This extension adds the email address of each new user to your specified Mailchimp audience. Also, if the user deletes their user account for your app, this extension removes the user from the Mailchimp audience.
10
10
11
-
* Deployment location: Where should the extension be deployed? For help selecting a location, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
11
+
**Note:** To use this extension, you need to manage your users with Firebase Authentication.
12
12
13
-
*Mailchimp API key: What is your Mailchimp API key? To obtain a Mailchimp API key, go to your [Mailchimp account](https://admin.mailchimp.com/account/api/).
13
+
This extension uses Mailchimp, so you'll need to supply your Mailchimp API Key and Audience ID when installing this extension.
14
14
15
-
* Audience ID: What is the Mailchimp Audience ID to which you want to subscribe new users? To find your Audience ID: visit https://admin.mailchimp.com/lists, click on the desired audience or create a new audience, then select **Settings**. Look for **Audience ID** (for example, `27735fc60a`).
15
+
#### Additional setup
16
16
17
-
* Contact status: When the extension adds a new user to the Mailchimp audience, what is their initial status? This value can be `subscribed` or `pending`. `subscribed` means the user can receive campaigns; `pending` means the user still needs to opt-in to receive campaigns.
17
+
Make sure that you've set up [Firebase Authentication](https://firebase.google.com/docs/auth)to manage your users.
18
18
19
+
You must also have a Mailchimp account before installing this extension.
19
20
21
+
#### Billing
20
22
21
-
**CLOUD FUNCTIONS CREATED:**
23
+
This extension uses other Firebase or Google Cloud Platform services which may have associated charges:
When you use Firebase Extensions, you're only charged for the underlying resources that you use. A paid-tier billing plan is only required if the extension uses a service that requires a paid-tier plan, for example calling to a Google Cloud Platform API or making outbound network requests to non-Google services. All Firebase services offer a free tier of usage. [Learn more about Firebase billing.](https://firebase.google.com/pricing)
26
29
30
+
Usage of this extension also requires you to have a Mailchimp account. You are responsible for any associated costs with your usage of Mailchimp.
27
31
28
32
29
-
**DETAILS**: Use this extension to add new users to an existing [Mailchimp](https://mailchimp.com) audience.
30
33
31
-
This extension adds the email address of each new user to your specified Mailchimp audience. Also, if the user deletes their user account for your app, this extension removes the user from the Mailchimp audience.
32
34
33
-
**Note:** To use this extension, you need to manage your users with Firebase Authentication.
34
35
35
-
This extension uses Mailchimp, so you'll need to supply your Mailchimp API Key and Audience ID when installing this extension.
36
+
**Configuration Parameters:**
36
37
37
-
#### Additional setup
38
+
* Deployment location: Where should the extension be deployed? For help selecting a location, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
38
39
39
-
Make sure that you've set up [Firebase Authentication](https://firebase.google.com/docs/auth) to manage your users.
40
+
* Mailchimp API key: What is your Mailchimp API key? To obtain a Mailchimp API key, go to your [Mailchimp account](https://admin.mailchimp.com/account/api/).
40
41
41
-
You must also have a Mailchimp account before installing this extension.
42
+
* Audience ID: What is the Mailchimp Audience ID to which you want to subscribe new users? To find your Audience ID: visit https://admin.mailchimp.com/lists, click on the desired audience or create a new audience, then select **Settings**. Look for **Audience ID** (for example, `27735fc60a`).
42
43
43
-
#### Billing
44
+
* Contact status: When the extension adds a new user to the Mailchimp audience, what is their initial status? This value can be `subscribed` or `pending`. `subscribed` means the user can receive campaigns; `pending` means the user still needs to opt-in to receive campaigns.
44
45
45
-
This extension uses other Firebase or Google Cloud Platform services which may have associated charges:
46
46
47
-
- Firebase Realtime Database
48
-
- Cloud Functions
49
47
50
-
When you use Firebase Extensions, you're only charged for the underlying resources that you use. A paid-tier billing plan is only required if the extension uses a service that requires a paid-tier plan, for example calling to a Google Cloud Platform API or making outbound network requests to non-Google services. All Firebase services offer a free tier of usage. [Learn more about Firebase billing.](https://firebase.google.com/pricing)
48
+
**Cloud Functions:**
51
49
52
-
Usage of this extension also requires you to have a Mailchimp account. You are responsible for any associated costs with your usage of Mailchimp.
50
+
***addUserToList:** Listens for new user accounts (as managed by Firebase Authentication), then automatically adds the new user to your specified MailChimp audience.
51
+
52
+
***removeUserFromList:** Listens for existing user accounts to be deleted (as managed by Firebase Authentication), then automatically removes them from your specified MailChimp audience.
Copy file name to clipboardExpand all lines: delete-user-data/README.md
+32-31Lines changed: 32 additions & 31 deletions
Original file line number
Diff line number
Diff line change
@@ -1,36 +1,10 @@
1
-
# delete-user-data
1
+
# Delete User Data
2
2
3
-
**VERSION**: 0.1.1
3
+
**Description**: Deletes data keyed on a userId from Cloud Firestore, Realtime Database, and/or Cloud Storage when a user deletes their account.
4
4
5
-
**DESCRIPTION**: Deletes data keyed on a userId from Cloud Firestore, Realtime Database, and/or Cloud Storage when a user deletes their account.
6
5
7
6
8
-
9
-
**CONFIGURATION PARAMETERS:**
10
-
11
-
* Deployment location: Where should the extension be deployed? You usually want a location close to your database. For help selecting a location, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations#selecting_regions_for_firestore_and_storage).
12
-
13
-
* Cloud Firestore paths: Which paths in your Cloud Firestore instance contain user data? Leave empty if you don't use Cloud Firestore.
14
-
Enter the full paths, separated by commas. You can represent the User ID of the deleted user with `{UID}`.
15
-
For example, if you have the collections `users` and `admins`, and each collection has documents with User ID as document IDs, then you can enter `users/{UID},admins/{UID}`.
16
-
17
-
* Realtime Database paths: Which paths in your Realtime Database instance contain user data? Leave empty if you don't use Realtime Database.
18
-
Enter the full paths, separated by commas. You can represent the User ID of the deleted user with `{UID}`.
19
-
For example: `users/{UID},admins/{UID}`.
20
-
21
-
* Cloud Storage paths: Where in Google Cloud Storage do you store user data? Leave empty if you don't use Cloud Storage.
22
-
Enter the full paths, separated by commas. You can represent the User ID of the deleted user with `{UID}`. You can use `{DEFAULT}` to represent your default bucket.
23
-
For example, if you are using your default bucket, and the bucket has files with the naming scheme `{UID}-pic.png`, then you can enter `{DEFAULT}/{UID}-pic.png`. If you also have files in another bucket called `my-awesome-app-logs`, and that bucket has files with the naming scheme `{UID}-logs.txt`, then you can enter `{DEFAULT}/{UID}-pic.png,my-awesome-app-logs/{UID}-logs.txt`.
**DETAILS**: Use this extension to automatically delete a user's data if the user is deleted from your authenticated users.
7
+
**Details**: Use this extension to automatically delete a user's data if the user is deleted from your authenticated users.
34
8
35
9
You can configure this extension to delete user data from any or all of the following: Cloud Firestore, Realtime Database, or Cloud Storage. Each trigger of the extension to delete data is keyed to the user's UserId.
36
10
@@ -57,13 +31,40 @@ When you use Firebase Extensions, you're only charged for the underlying resourc
57
31
58
32
59
33
60
-
**ACCESS REQUIRED**:
34
+
35
+
**Configuration Parameters:**
36
+
37
+
* Deployment location: Where should the extension be deployed? You usually want a location close to your database. For help selecting a location, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
38
+
39
+
* Cloud Firestore paths: Which paths in your Cloud Firestore instance contain user data? Leave empty if you don't use Cloud Firestore.
40
+
Enter the full paths, separated by commas. You can represent the User ID of the deleted user with `{UID}`.
41
+
For example, if you have the collections `users` and `admins`, and each collection has documents with User ID as document IDs, then you can enter `users/{UID},admins/{UID}`.
42
+
43
+
* Cloud Firestore delete mode: (Only applicable if you use the `Cloud Firestore paths` parameter.) How do you want to delete Cloud Firestore documents? To also delete documents in subcollections, set this parameter to `recursive`.
44
+
45
+
* Realtime Database paths: Which paths in your Realtime Database instance contain user data? Leave empty if you don't use Realtime Database.
46
+
Enter the full paths, separated by commas. You can represent the User ID of the deleted user with `{UID}`.
47
+
For example: `users/{UID},admins/{UID}`.
48
+
49
+
* Cloud Storage paths: Where in Google Cloud Storage do you store user data? Leave empty if you don't use Cloud Storage.
50
+
Enter the full paths, separated by commas. You can represent the User ID of the deleted user with `{UID}`. You can use `{DEFAULT}` to represent your default bucket.
51
+
For example, if you are using your default bucket, and the bucket has files with the naming scheme `{UID}-pic.png`, then you can enter `{DEFAULT}/{UID}-pic.png`. If you also have files in another bucket called `my-awesome-app-logs`, and that bucket has files with the naming scheme `{UID}-logs.txt`, then you can enter `{DEFAULT}/{UID}-pic.png,my-awesome-app-logs/{UID}-logs.txt`.
52
+
53
+
54
+
55
+
**Cloud Functions:**
56
+
57
+
***clearData:** Listens for user accounts to be deleted from your project's authenticated users, then removes any associated user data (based on Firebase Authentication's User ID) from Realtime Database, Cloud Firestore, and/or Cloud Storage.
58
+
59
+
60
+
61
+
**Access Required**:
61
62
62
63
63
64
64
65
This extension will operate with the following project IAM roles:
65
66
66
-
* datastore.user (Reason: Allows the extension to delete (user) data from Cloud Firestore.)
67
+
* datastore.owner (Reason: Allows the extension to delete (user) data from Cloud Firestore.)
67
68
68
69
* firebasedatabase.admin (Reason: Allows the extension to delete (user) data from Realtime Database.)
Copy file name to clipboardExpand all lines: firestore-bigquery-export/README.md
+24-25Lines changed: 24 additions & 25 deletions
Original file line number
Diff line number
Diff line change
@@ -1,30 +1,10 @@
1
-
# firestore-bigquery-export
1
+
# Export Collections to BigQuery
2
2
3
-
**VERSION**: 0.1.0
3
+
**Description**: Sends realtime, incremental updates from a specified Cloud Firestore collection to BigQuery.
4
4
5
-
**DESCRIPTION**: Sends realtime, incremental updates from a specified Cloud Firestore collection to BigQuery.
6
5
7
6
8
-
9
-
**CONFIGURATION PARAMETERS:**
10
-
11
-
* Deployment location: Where should the extension be deployed? You usually want a location close to your database. For help selecting a location, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations#selecting_regions_for_firestore_and_storage).
12
-
13
-
* Collection path: What is the path of the collection that you would like to export? You may use `{wildcard}` notation to match a subcollection of all documents in a collection (for example: `chatrooms/{chatid}/posts`).
14
-
15
-
* Dataset ID: What ID would you like to use for your BigQuery dataset? This extension will create the dataset, if it doesn't already exist.
16
-
17
-
* Table ID: What identifying prefix would you like to use for your table and view inside your BigQuery dataset? This extension will create the table and view, if they don't already exist.
**DETAILS**: Use this extension to export the documents in a Cloud Firestore collection to BigQuery. Exports are realtime and incremental, so the data in BigQuery is a mirror of your content in Cloud Firestore.
7
+
**Details**: Use this extension to export the documents in a Cloud Firestore collection to BigQuery. Exports are realtime and incremental, so the data in BigQuery is a mirror of your content in Cloud Firestore.
28
8
29
9
The extension creates and updates a [dataset](https://cloud.google.com/bigquery/docs/datasets-intro) containing the following two BigQuery resources:
30
10
@@ -60,13 +40,32 @@ When you use Firebase Extensions, you're only charged for the underlying resourc
60
40
61
41
62
42
63
-
**APIS USED**:
43
+
44
+
**Configuration Parameters:**
45
+
46
+
* Deployment location: Where should the extension be deployed? You usually want a location close to your database. For help selecting a location, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
47
+
48
+
* Collection path: What is the path of the collection that you would like to export? You may use `{wildcard}` notation to match a subcollection of all documents in a collection (for example: `chatrooms/{chatid}/posts`).
49
+
50
+
* Dataset ID: What ID would you like to use for your BigQuery dataset? This extension will create the dataset, if it doesn't already exist.
51
+
52
+
* Table ID: What identifying prefix would you like to use for your table and view inside your BigQuery dataset? This extension will create the table and view, if they don't already exist.
53
+
54
+
55
+
56
+
**Cloud Functions:**
57
+
58
+
***fsexportbigquery:** Listens for document changes in your specified Cloud Firestore collection, then exports the changes into BigQuery.
59
+
60
+
61
+
62
+
**APIs Used**:
64
63
65
64
* bigquery-json.googleapis.com (Reason: Mirrors data from your Cloud Firestore collection in BigQuery.)
Copy file name to clipboardExpand all lines: firestore-counter/README.md
+23-24Lines changed: 23 additions & 24 deletions
Original file line number
Diff line number
Diff line change
@@ -1,30 +1,10 @@
1
-
# firestore-counter
1
+
# Distributed Counter
2
2
3
-
**VERSION**: 0.1.0
3
+
**Description**: Records event counters at scale to accommodate high-velocity writes to Cloud Firestore.
4
4
5
-
**DESCRIPTION**: Records event counters at scale to accommodate high-velocity writes to Cloud Firestore.
6
5
7
6
8
-
9
-
**CONFIGURATION PARAMETERS:**
10
-
11
-
* Deployment location: Where should the extension be deployed? You usually want a location close to your database. For help selecting a location, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
12
-
13
-
* Document path for internal state: What is the path to the document where the extension can keep its internal state?
**DETAILS**: Use this extension to add a highly scalable counter service to your app. This is ideal for applications that count viral actions or any very high-velocity action such as views, likes, or shares.
7
+
**Details**: Use this extension to add a highly scalable counter service to your app. This is ideal for applications that count viral actions or any very high-velocity action such as views, likes, or shares.
28
8
29
9
Since Cloud Firestore has a limit of one sustained write per second, per document, this extension instead shards your writes across documents in a `_counter_shards_` subcollection. Each client only increments their own unique shard while the background workers (provided by this extension) monitor and aggregate these shards into a main document.
30
10
@@ -61,7 +41,26 @@ When you use Firebase Extensions, you're only charged for the underlying resourc
61
41
62
42
63
43
64
-
**ACCESS REQUIRED**:
44
+
45
+
**Configuration Parameters:**
46
+
47
+
* Deployment location: Where should the extension be deployed? You usually want a location close to your database. For help selecting a location, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
48
+
49
+
* Document path for internal state: What is the path to the document where the extension can keep its internal state?
50
+
51
+
52
+
53
+
**Cloud Functions:**
54
+
55
+
***controller:** Scheduled to run every minute. This function either aggregates shards itself, or it schedules and monitors workers to aggregate shards.
56
+
57
+
***onWrite:** Listens for changes on counter shards that may need aggregating. This function is limited to max 1 instance.
58
+
59
+
***worker:** Monitors a range of shards and aggregates them, as needed. There may be 0 or more worker functions running at any point in time. The controller function is responsible for scheduling and monitoring these workers.
0 commit comments