Skip to content

Commit c3e3375

Browse files
Merge
2 parents c63977f + 5c41eab commit c3e3375

Some content is hidden

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

62 files changed

+773
-516
lines changed

.github/workflows/test-all.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ jobs:
2525
run: yarn build
2626
- name: Run unit tests
2727
run: xvfb-run yarn test:ci
28+
env:
29+
FCM_TEST_PROJECT_SERVER_KEY: $${{secrets.FCM_TEST_PROJECT_SERVER_KEY}}
2830
- name: Generate coverage file
2931
run: yarn ci:coverage
3032
- name: Run coverage

.github/workflows/test-changed.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,5 @@ jobs:
2828
run: yarn build
2929
- name: Run tests on changed packages
3030
run: xvfb-run yarn test:changed
31+
env:
32+
FCM_TEST_PROJECT_SERVER_KEY: $${{secrets.FCM_TEST_PROJECT_SERVER_KEY}}

common/api-review/app-types-exp.api.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ export interface FirebaseOptions {
5353
storageBucket?: string;
5454
}
5555

56+
// @internal (undocumented)
57+
export interface _FirebaseService {
58+
// (undocumented)
59+
app: FirebaseApp;
60+
delete(): Promise<void>;
61+
}
62+
5663
// @public (undocumented)
5764
export interface PlatformLoggerService {
5865
// (undocumented)

config/karma.saucelabs.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ const packageConfigs = {
4949
messaging: {
5050
// Messaging currently only supports these browsers.
5151
browsers: ['Chrome_Windows', 'Firefox_Windows', 'Edge_Windows']
52+
},
53+
firestore: {
54+
browsers: [
55+
'Chrome_Windows',
56+
'Firefox_Windows',
57+
'Edge_Windows',
58+
'Safari_macOS'
59+
]
5260
}
5361
};
5462

@@ -170,7 +178,8 @@ module.exports = function(config) {
170178
'packages/polyfill/index.ts': ['webpack', 'sourcemap'],
171179
'**/test/**/*.ts': ['webpack', 'sourcemap'],
172180
'**/*.test.ts': ['webpack', 'sourcemap'],
173-
'packages/firestore/test/**/bootstrap.ts': ['webpack', 'babel'],
181+
// Restore when ready to run Firestore unit tests in IE.
182+
// 'packages/firestore/test/**/bootstrap.ts': ['webpack', 'babel'],
174183
'integration/**/namespace.*': ['webpack', 'babel', 'sourcemap']
175184
},
176185

integration/browserify/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"test:ci": "node ../../scripts/run_tests_in_ci.js"
99
},
1010
"dependencies": {
11-
"firebase": "7.14.5"
11+
"firebase": "7.14.6"
1212
},
1313
"devDependencies": {
1414
"@babel/core": "7.9.6",

integration/firebase-typings/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"test:ci": "node ../../scripts/run_tests_in_ci.js"
88
},
99
"dependencies": {
10-
"firebase": "7.14.5"
10+
"firebase": "7.14.6"
1111
},
1212
"devDependencies": {
1313
"typescript": "3.8.3"

integration/messaging/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"test:manual": "mocha --exit"
99
},
1010
"dependencies": {
11-
"firebase": "7.14.5"
11+
"firebase": "7.14.6"
1212
},
1313
"devDependencies": {
1414
"chai": "4.2.0",

integration/typescript/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"test:ci": "node ../../scripts/run_tests_in_ci.js"
88
},
99
"dependencies": {
10-
"firebase": "7.14.5"
10+
"firebase": "7.14.6"
1111
},
1212
"devDependencies": {
1313
"@babel/core": "7.9.6",

integration/webpack/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"test:ci": "node ../../scripts/run_tests_in_ci.js"
99
},
1010
"dependencies": {
11-
"firebase": "7.14.5"
11+
"firebase": "7.14.6"
1212
},
1313
"devDependencies": {
1414
"@babel/core": "7.9.6",

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
"test:changed": "node scripts/run_changed.js",
4141
"test:setup": "node tools/config.js",
4242
"test:saucelabs": "node scripts/run_saucelabs.js",
43-
"test:saucelabs:single": "karma start config/karma.saucelabs.js --single-run",
4443
"docgen:js": "node scripts/docgen/generate-docs.js --api js",
4544
"docgen:node": "node scripts/docgen/generate-docs.js --api node",
4645
"docgen": "yarn docgen:js; yarn docgen:node",

packages-exp/app-types-exp/index.d.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,18 @@ export interface PlatformLoggerService {
104104
getPlatformInfoString(): string;
105105
}
106106

107+
/**
108+
* @internal
109+
*/
110+
export interface _FirebaseService {
111+
app: FirebaseApp;
112+
/**
113+
* Delete the service and free it's resources - called from
114+
* {@link @firebase/app-exp#deleteApp | deleteApp()}
115+
*/
116+
delete(): Promise<void>;
117+
}
118+
107119
declare module '@firebase/component' {
108120
interface NameServiceMapping {
109121
'app-exp': FirebaseApp;

packages/firebase/index.d.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7760,7 +7760,7 @@ declare namespace firebase.firestore {
77607760
export interface PersistenceSettings {
77617761
/**
77627762
* Whether to synchronize the in-memory state of multiple tabs. Setting this
7763-
* to 'true' in all open tabs enables shared access to local persistence,
7763+
* to `true` in all open tabs enables shared access to local persistence,
77647764
* shared execution of queries and latency-compensated local document updates
77657765
* across all connected instances.
77667766
*
@@ -7772,14 +7772,27 @@ declare namespace firebase.firestore {
77727772

77737773
/**
77747774
* Whether to synchronize the in-memory state of multiple tabs. Setting this
7775-
* to 'true' in all open tabs enables shared access to local persistence,
7775+
* to `true` in all open tabs enables shared access to local persistence,
77767776
* shared execution of queries and latency-compensated local document updates
77777777
* across all connected instances.
77787778
*
7779-
* @deprecated This setting is deprecated. To enabled synchronization between
7779+
* @deprecated This setting is deprecated. To enable synchronization between
77807780
* multiple tabs, please use `synchronizeTabs: true` instead.
77817781
*/
77827782
experimentalTabSynchronization?: boolean;
7783+
7784+
/**
7785+
* Whether to force enable persistence for the client. This cannot be used
7786+
* with `synchronizeTabs:true` and is primarily intended for use with Web
7787+
* Workers. Setting this to `true` will enable persistence, but cause other
7788+
* tabs using persistence to fail.
7789+
*
7790+
* This setting may be removed in a future release. If you find yourself
7791+
* using it for a specific use case or run into any issues, please tell us
7792+
* about it in
7793+
* https://github.com/firebase/firebase-js-sdk/issues/983.
7794+
*/
7795+
experimentalForceOwningTab?: boolean;
77837796
}
77847797

77857798
export type LogLevel = 'debug' | 'error' | 'silent';

packages/firebase/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "firebase",
3-
"version": "7.14.5",
3+
"version": "7.14.6",
44
"description": "Firebase JavaScript library for web and Node.js",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"license": "Apache-2.0",
@@ -49,13 +49,13 @@
4949
"@firebase/app-types": "0.6.1",
5050
"@firebase/auth": "0.14.6",
5151
"@firebase/database": "0.6.3",
52-
"@firebase/firestore": "1.14.5",
52+
"@firebase/firestore": "1.14.6",
5353
"@firebase/functions": "0.4.44",
5454
"@firebase/installations": "0.4.10",
5555
"@firebase/messaging": "0.6.16",
5656
"@firebase/polyfill": "0.3.36",
5757
"@firebase/storage": "0.3.34",
58-
"@firebase/performance": "0.3.4",
58+
"@firebase/performance": "0.3.5",
5959
"@firebase/remote-config": "0.1.21",
6060
"@firebase/analytics": "0.3.5",
6161
"@firebase/util": "0.2.47"

packages/firestore-types/index.d.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,16 @@ export interface Settings {
3535
export interface PersistenceSettings {
3636
synchronizeTabs?: boolean;
3737
experimentalTabSynchronization?: boolean;
38+
experimentalForceOwningTab?: boolean;
3839
}
3940

40-
export type LogLevel = 'debug' | 'error' | 'silent';
41+
export type LogLevel =
42+
| 'debug'
43+
| 'error'
44+
| 'silent'
45+
| 'warn'
46+
| 'info'
47+
| 'verbose';
4148

4249
export function setLogLevel(logLevel: LogLevel): void;
4350

packages/firestore-types/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@firebase/firestore-types",
3-
"version": "1.10.2",
3+
"version": "1.10.3",
44
"description": "@firebase/firestore Types",
55
"author": "Firebase <[email protected]> (https://firebase.google.com/)",
66
"license": "Apache-2.0",

packages/firestore/CHANGELOG.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
# Unreleased
2+
- [changed] All known failure cases for Indexed-related crashes have now been
3+
addressed. Instead of crashing the client, IndexedDB failures will result
4+
in rejected operations (e.g. rejected Writes or errored Query listeners).
5+
If these rejections surface in your app, you can retry these operations
6+
when IndexedDB access is restored.
7+
IndexedDB failures that occur due to background work are automatically
8+
retried.
9+
10+
If you continue to see Indexed-related crashes, we appreciate feedback
11+
(https://github.com/firebase/firebase-js-sdk/issues/2755).
12+
13+
# Released
214
- [fixed] Fixed an issue that could cause Firestore to temporarily go
315
offline when a Window visibility event occurred.
416
- [feature] Added support for calling `FirebaseFiresore.settings` with
517
`{ ignoreUndefinedProperties: true }`. When set, Firestore ignores
618
undefined properties inside objects rather than rejecting the API call.
7-
8-
# Released
919
- [fixed] Fixed a regression introduced in v7.14.2 that incorrectly applied
1020
a `FieldValue.increment` in combination with `set({...}, {merge: true})`.
1121
- [fixed] Firestore now rejects `onSnapshot()` listeners if they cannot be
@@ -14,6 +24,9 @@
1424
in IndexedDB. Previously, these errors crashed the client.
1525
- [fixed] Fixed a source of IndexedDB-related crashes for tabs that receive
1626
multi-tab notifications while the file system is locked.
27+
- [feature] Added an `experimentalForceOwningTab` setting that can be used to
28+
enable persistence in environments without LocalStorage, which allows
29+
persistence to be used in Web Workers (#983).
1730

1831
# 1.10.2
1932
- [fixed] Temporarily reverted the use of window.crypto to generate document

packages/firestore/exp/index.d.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,11 @@ export class Transaction {
169169

170170
get<T>(documentRef: DocumentReference<T>): Promise<DocumentSnapshot<T>>;
171171

172+
set<T>(documentRef: DocumentReference<T>, data: T): Transaction;
172173
set<T>(
173174
documentRef: DocumentReference<T>,
174-
data: T,
175-
options?: SetOptions
175+
data: Partial<T>,
176+
options: SetOptions
176177
): Transaction;
177178

178179
update(documentRef: DocumentReference<any>, data: UpdateData): Transaction;
@@ -189,10 +190,11 @@ export class Transaction {
189190
export class WriteBatch {
190191
private constructor();
191192

193+
set<T>(documentRef: DocumentReference<T>, data: T): WriteBatch;
192194
set<T>(
193195
documentRef: DocumentReference<T>,
194-
data: T,
195-
options?: SetOptions
196+
data: Partial<T>,
197+
options: SetOptions
196198
): WriteBatch;
197199

198200
update(documentRef: DocumentReference<any>, data: UpdateData): WriteBatch;
@@ -327,7 +329,7 @@ export function getQueryFromServer<T>(
327329
export function addDoc<T>(
328330
reference: CollectionReference<T>,
329331
data: T
330-
): Promise<DocumentSnapshot<T>>;
332+
): Promise<DocumentReference<T>>;
331333
export function setDoc<T>(
332334
reference: DocumentReference<T>,
333335
data: T
@@ -338,15 +340,16 @@ export function setDoc<T>(
338340
options: SetOptions
339341
): Promise<void>;
340342
export function updateDoc(
341-
reference: DocumentReference,
343+
reference: DocumentReference<unknown>,
342344
data: UpdateData
343345
): Promise<void>;
344346
export function updateDoc(
347+
reference: DocumentReference<unknown>,
345348
field: string | FieldPath,
346349
value: any,
347350
...moreFieldsAndValues: any[]
348351
): Promise<void>;
349-
export function deleteDoc(reference: DocumentReference): Promise<void>;
352+
export function deleteDoc(reference: DocumentReference<unknown>): Promise<void>;
350353

351354
export function onSnapshot<T>(
352355
reference: DocumentReference<T>,

packages/firestore/karma.conf.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**
22
* @license
3-
* Copyright 2017 Google Inc.
3+
* Copyright 2017 Google LLC
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License");
66
* you may not use this file except in compliance with the License.
@@ -15,8 +15,6 @@
1515
* limitations under the License.
1616
*/
1717

18-
const karma = require('karma');
19-
const path = require('path');
2018
const karmaBase = require('../../config/karma.base');
2119
const { argv } = require('yargs');
2220

packages/firestore/lite/index.node.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import { Firestore } from './src/api/database';
2020
import { version } from '../package.json';
2121
import { Component, ComponentType } from '@firebase/component';
2222

23+
import '../src/platform_node/node_init';
24+
2325
export {
2426
Firestore,
2527
initializeFirestore,
@@ -28,6 +30,16 @@ export {
2830

2931
export { DocumentReference } from './src/api/reference';
3032

33+
// TOOD(firestorelite): Add tests when setDoc() is available
34+
export {
35+
FieldValue,
36+
deleteField,
37+
increment,
38+
arrayRemove,
39+
arrayUnion,
40+
serverTimestamp
41+
} from './src/api/field_value';
42+
3143
export function registerFirestore(): void {
3244
_registerComponent(
3345
new Component(

0 commit comments

Comments
 (0)