Skip to content

Commit bb24124

Browse files
authored
Merge pull request #448 from firebase/next
September 10, 2020 Release
2 parents b9b4d6f + fbf6532 commit bb24124

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+1797
-135
lines changed

auth-mailchimp-sync/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## Version 0.1.2
2+
3+
feature - Add new Cloud Functions locations. For more information about locations and their pricing tiers, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
4+
15
## Version 0.1.1
26

37
feature - Update Cloud Functions runtime to Node.js 10.

auth-mailchimp-sync/extension.yaml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# limitations under the License.
1414

1515
name: auth-mailchimp-sync
16-
version: 0.1.1
16+
version: 0.1.2
1717
specVersion: v1beta
1818

1919
displayName: Sync with Mailchimp
@@ -80,16 +80,38 @@ params:
8080
value: us-east1
8181
- label: Northern Virginia (us-east4)
8282
value: us-east4
83+
- label: Los Angeles (us-west2)
84+
value: us-west2
85+
- label: Salt Lake City (us-west3)
86+
value: us-west3
87+
- label: Las Vegas (us-west4)
88+
value: us-west4
8389
- label: Belgium (europe-west1)
8490
value: europe-west1
8591
- label: London (europe-west2)
8692
value: europe-west2
8793
- label: Frankfurt (europe-west3)
8894
value: europe-west3
95+
- label: Zurich (europe-west6)
96+
value: europe-west6
8997
- label: Hong Kong (asia-east2)
9098
value: asia-east2
9199
- label: Tokyo (asia-northeast1)
92100
value: asia-northeast1
101+
- label: Osaka (asia-northeast2)
102+
value: asia-northeast2
103+
- label: Seoul (asia-northeast3)
104+
value: asia-northeast3
105+
- label: Mumbai (asia-south1)
106+
value: asia-south1
107+
- label: Jakarta (asia-southeast2)
108+
value: asia-southeast2
109+
- label: Montreal (northamerica-northeast1)
110+
value: northamerica-northeast1
111+
- label: Sao Paulo (southamerica-east1)
112+
value: southamerica-east1
113+
- label: Sydney (australia-southeast1)
114+
value: australia-southeast1
93115
default: us-central1
94116
required: true
95117
immutable: true

auth-mailchimp-sync/functions/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
},
1212
"dependencies": {
1313
"firebase-admin": "^8.0.0",
14-
"firebase-functions": "^3.3.0",
14+
"firebase-functions": "^3.9.0",
1515
"mailchimp-api-v3": "^1.12.1"
1616
},
1717
"devDependencies": {

delete-user-data/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## Version 0.1.6
2+
3+
feature - Add new Cloud Functions locations. For more information about locations and their pricing tiers, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
4+
15
## Version 0.1.5
26

37
feature - Update Cloud Functions runtime to Node.js 10.

delete-user-data/extension.yaml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# limitations under the License.
1414

1515
name: delete-user-data
16-
version: 0.1.5
16+
version: 0.1.6
1717
specVersion: v1beta
1818

1919
displayName: Delete User Data
@@ -81,16 +81,38 @@ params:
8181
value: us-east1
8282
- label: Northern Virginia (us-east4)
8383
value: us-east4
84+
- label: Los Angeles (us-west2)
85+
value: us-west2
86+
- label: Salt Lake City (us-west3)
87+
value: us-west3
88+
- label: Las Vegas (us-west4)
89+
value: us-west4
8490
- label: Belgium (europe-west1)
8591
value: europe-west1
8692
- label: London (europe-west2)
8793
value: europe-west2
8894
- label: Frankfurt (europe-west3)
8995
value: europe-west3
96+
- label: Zurich (europe-west6)
97+
value: europe-west6
9098
- label: Hong Kong (asia-east2)
9199
value: asia-east2
92100
- label: Tokyo (asia-northeast1)
93101
value: asia-northeast1
102+
- label: Osaka (asia-northeast2)
103+
value: asia-northeast2
104+
- label: Seoul (asia-northeast3)
105+
value: asia-northeast3
106+
- label: Mumbai (asia-south1)
107+
value: asia-south1
108+
- label: Jakarta (asia-southeast2)
109+
value: asia-southeast2
110+
- label: Montreal (northamerica-northeast1)
111+
value: northamerica-northeast1
112+
- label: Sao Paulo (southamerica-east1)
113+
value: southamerica-east1
114+
- label: Sydney (australia-southeast1)
115+
value: australia-southeast1
94116
default: us-central1
95117
required: true
96118
immutable: true

delete-user-data/functions/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"license": "Apache-2.0",
1414
"dependencies": {
1515
"firebase-admin": "^8.0.0",
16-
"firebase-functions": "^3.7.0",
16+
"firebase-functions": "^3.9.0",
1717
"firebase-tools": "^7.14.0"
1818
},
1919
"devDependencies": {

firestore-bigquery-export/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## Version 0.1.9
2+
3+
feature - Add new Cloud Functions locations. For more information about locations and their pricing tiers, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
4+
15
## Version 0.1.8
26

37
feature - Update Cloud Functions runtime to Node.js 10.

firestore-bigquery-export/README.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Export Collections to BigQuery
2+
3+
**Author**: Firebase (**[https://firebase.google.com](https://firebase.google.com)**)
4+
5+
**Description**: Sends realtime, incremental updates from a specified Cloud Firestore collection to BigQuery.
6+
7+
8+
9+
**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.
10+
11+
The extension creates and updates a [dataset](https://cloud.google.com/bigquery/docs/datasets-intro) containing the following two BigQuery resources:
12+
13+
- A [table](https://cloud.google.com/bigquery/docs/tables-intro) of raw data that stores a full change history of the documents within your collection. This table includes a number of metadata fields so that BigQuery can display the current state of your data. The principle metadata fields are `timestamp`, `document_name`, and the `operation` for the document change.
14+
- A [view](https://cloud.google.com/bigquery/docs/views-intro) which represents the current state of the data within your collection. It also shows a log of the latest `operation` for each document (`CREATE`, `UPDATE`, or `IMPORT`).
15+
16+
If you create, update, delete, or import a document in the specified collection, this extension sends that update to BigQuery. You can then run queries on this mirrored dataset.
17+
18+
Note that this extension only listens for _document_ changes in the collection, but not changes in any _subcollection_. You can, though, install additional instances of this extension to specifically listen to a subcollection or other collections in your database. Or if you have the same subcollection across documents in a given collection, you can use `{wildcard}` notation to listen to all those subcollections (for example: `chats/{chatid}/posts`).
19+
20+
#### Additional setup
21+
22+
Before installing this extension, you'll need to:
23+
24+
- [Set up Cloud Firestore in your Firebase project.](https://firebase.google.com/docs/firestore/quickstart)
25+
- [Link your Firebase project to BigQuery.](https://support.google.com/firebase/answer/6318765)
26+
27+
#### Backfill your BigQuery dataset
28+
29+
This extension only sends the content of documents that have been changed -- it does not export your full dataset of existing documents into BigQuery. So, to backfill your BigQuery dataset with all the documents in your collection, you can run the [import script](https://github.com/firebase/extensions/blob/master/firestore-bigquery-export/guides/IMPORT_EXISTING_DOCUMENTS.md) provided by this extension.
30+
31+
**Important:** Run the import script over the entire collection _after_ installing this extension, otherwise all writes to your database during the import might be lost.
32+
33+
#### Generate schema views
34+
35+
After your data is in BigQuery, you can run the [schema-views script](https://github.com/firebase/extensions/blob/master/firestore-bigquery-export/guides/GENERATE_SCHEMA_VIEWS.md) (provided by this extension) to create views that make it easier to query relevant data. You only need to provide a JSON schema file that describes your data structure, and the schema-views script will create the views.
36+
37+
#### Billing
38+
39+
To install an extension, your project must be on the [Blaze (pay as you go) plan](https://firebase.google.com/pricing)
40+
41+
- You will be charged a small amount (typically around $0.01/month) for the Firebase resources required by this extension (even if it is not used).
42+
- This extension uses other Firebase and Google Cloud Platform services, which have associated charges if you exceed the service’s free tier:
43+
- BigQuery (this extension writes to BigQuery with [streaming inserts](https://cloud.google.com/bigquery/pricing#streaming_pricing))
44+
- Cloud Firestore
45+
- Cloud Functions (Node.js 10+ runtime. [See FAQs](https://firebase.google.com/support/faq#expandable-24))
46+
47+
48+
49+
**Configuration Parameters:**
50+
51+
* Cloud Functions location: Where do you want to deploy the functions created for this extension? 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). Note that this extension locates your BigQuery dataset in `us-central1`.
52+
53+
* 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`).
54+
55+
* 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.
56+
57+
* 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.
58+
59+
60+
61+
**Cloud Functions:**
62+
63+
* **fsexportbigquery:** Listens for document changes in your specified Cloud Firestore collection, then exports the changes into BigQuery.
64+
65+
66+
67+
**APIs Used**:
68+
69+
* bigquery-json.googleapis.com (Reason: Mirrors data from your Cloud Firestore collection in BigQuery.)
70+
71+
72+
73+
**Access Required**:
74+
75+
76+
77+
This extension will operate with the following project IAM roles:
78+
79+
* bigquery.dataEditor (Reason: Allows the extension to configure and export data into BigQuery.)

firestore-bigquery-export/extension.yaml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# limitations under the License.
1414

1515
name: firestore-bigquery-export
16-
version: 0.1.8
16+
version: 0.1.9
1717
specVersion: v1beta
1818

1919
displayName: Export Collections to BigQuery
@@ -76,16 +76,38 @@ params:
7676
value: us-east1
7777
- label: Northern Virginia (us-east4)
7878
value: us-east4
79+
- label: Los Angeles (us-west2)
80+
value: us-west2
81+
- label: Salt Lake City (us-west3)
82+
value: us-west3
83+
- label: Las Vegas (us-west4)
84+
value: us-west4
7985
- label: Belgium (europe-west1)
8086
value: europe-west1
8187
- label: London (europe-west2)
8288
value: europe-west2
8389
- label: Frankfurt (europe-west3)
8490
value: europe-west3
91+
- label: Zurich (europe-west6)
92+
value: europe-west6
8593
- label: Hong Kong (asia-east2)
8694
value: asia-east2
8795
- label: Tokyo (asia-northeast1)
8896
value: asia-northeast1
97+
- label: Osaka (asia-northeast2)
98+
value: asia-northeast2
99+
- label: Seoul (asia-northeast3)
100+
value: asia-northeast3
101+
- label: Mumbai (asia-south1)
102+
value: asia-south1
103+
- label: Jakarta (asia-southeast2)
104+
value: asia-southeast2
105+
- label: Montreal (northamerica-northeast1)
106+
value: northamerica-northeast1
107+
- label: Sao Paulo (southamerica-east1)
108+
value: southamerica-east1
109+
- label: Sydney (australia-southeast1)
110+
value: australia-southeast1
89111
default: us-central1
90112
required: true
91113
immutable: true

firestore-bigquery-export/functions/lib/logs.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
* limitations under the License.
1616
*/
1717
Object.defineProperty(exports, "__esModule", { value: true });
18+
exports.timestampMissingValue = exports.start = exports.init = exports.error = exports.dataTypeInvalid = exports.dataInserting = exports.dataInserted = exports.complete = exports.bigQueryViewValidating = exports.bigQueryViewValidated = exports.bigQueryViewUpToDate = exports.bigQueryViewUpdating = exports.bigQueryViewUpdated = exports.bigQueryViewAlreadyExists = exports.bigQueryViewCreating = exports.bigQueryViewCreated = exports.bigQueryUserDefinedFunctionCreated = exports.bigQueryUserDefinedFunctionCreating = exports.bigQueryTableValidating = exports.bigQueryTableValidated = exports.bigQueryTableUpToDate = exports.bigQueryTableUpdating = exports.bigQueryTableUpdated = exports.bigQueryTableCreating = exports.bigQueryTableCreated = exports.bigQueryTableAlreadyExists = exports.bigQueryLatestSnapshotViewQueryCreated = exports.bigQueryErrorRecordingDocumentChange = exports.bigQueryDatasetExists = exports.bigQueryDatasetCreating = exports.bigQueryDatasetCreated = exports.arrayFieldInvalid = void 0;
1819
const config_1 = require("./config");
1920
exports.arrayFieldInvalid = (fieldName) => {
2021
console.warn(`Array field '${fieldName}' does not contain an array, skipping`);

firestore-bigquery-export/functions/lib/util.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
* limitations under the License.
1616
*/
1717
Object.defineProperty(exports, "__esModule", { value: true });
18+
exports.getDocumentId = exports.getChangeType = void 0;
1819
const firestore_bigquery_change_tracker_1 = require("@firebaseextensions/firestore-bigquery-change-tracker");
1920
function getChangeType(change) {
2021
if (!change.after.exists) {

firestore-bigquery-export/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"@types/chai": "^4.1.6",
1919
"chai": "^4.2.0",
2020
"firebase-admin": "^8.0.0",
21-
"firebase-functions": "^3.7.0",
21+
"firebase-functions": "^3.9.0",
2222
"generate-schema": "^2.6.0",
2323
"inquirer": "^6.4.0",
2424
"lodash": "^4.17.14",

firestore-counter/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## Version 0.1.5
2+
3+
feature - Add new Cloud Functions locations. For more information about locations and their pricing tiers, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
4+
15
## Version 0.1.4
26

37
feature - Update Cloud Functions runtime to Node.js 10.

firestore-counter/extension.yaml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# limitations under the License.
1414

1515
name: firestore-counter
16-
version: 0.1.4
16+
version: 0.1.5
1717
specVersion: v1beta
1818

1919
displayName: Distributed Counter
@@ -116,16 +116,38 @@ params:
116116
value: us-east1
117117
- label: Northern Virginia (us-east4)
118118
value: us-east4
119+
- label: Los Angeles (us-west2)
120+
value: us-west2
121+
- label: Salt Lake City (us-west3)
122+
value: us-west3
123+
- label: Las Vegas (us-west4)
124+
value: us-west4
119125
- label: Belgium (europe-west1)
120126
value: europe-west1
121127
- label: London (europe-west2)
122128
value: europe-west2
123129
- label: Frankfurt (europe-west3)
124130
value: europe-west3
131+
- label: Zurich (europe-west6)
132+
value: europe-west6
125133
- label: Hong Kong (asia-east2)
126134
value: asia-east2
127135
- label: Tokyo (asia-northeast1)
128136
value: asia-northeast1
137+
- label: Osaka (asia-northeast2)
138+
value: asia-northeast2
139+
- label: Seoul (asia-northeast3)
140+
value: asia-northeast3
141+
- label: Mumbai (asia-south1)
142+
value: asia-south1
143+
- label: Jakarta (asia-southeast2)
144+
value: asia-southeast2
145+
- label: Montreal (northamerica-northeast1)
146+
value: northamerica-northeast1
147+
- label: Sao Paulo (southamerica-east1)
148+
value: southamerica-east1
149+
- label: Sydney (australia-southeast1)
150+
value: australia-southeast1
129151
default: us-central1
130152
required: true
131153
immutable: true

firestore-counter/functions/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"@google-cloud/pubsub": "^1.1.5",
99
"deep-equal": "^1.0.1",
1010
"firebase-admin": "^8.3.0",
11-
"firebase-functions": "^3.7.0",
11+
"firebase-functions": "^3.9.0",
1212
"uuid": "^3.3.2"
1313
},
1414
"devDependencies": {

firestore-send-email/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## Version 0.1.6
2+
3+
feature - adds support for Handlebars partials (#419)
4+
5+
feature - Add new Cloud Functions locations. For more information about locations and their pricing tiers, refer to the [location selection guide](https://firebase.google.com/docs/functions/locations).
6+
17
## Version 0.1.5
28

39
feature - Update Cloud Functions runtime to Node.js 10.

0 commit comments

Comments
 (0)