Skip to content

AppCheck integration for Firestore #5634

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 25 commits into from
Nov 22, 2021
Merged
Show file tree
Hide file tree
Changes from 24 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0e75685
AppCheck integration for Firestore.
ehsannas Oct 17, 2021
601136c
Update datastore and connection.
ehsannas Oct 18, 2021
52a753a
Better invokeWithTokens function.
ehsannas Oct 18, 2021
4d576e8
Update/add unit tests.
ehsannas Oct 18, 2021
090304d
Create mean-elephants-rush.md
ehsannas Oct 18, 2021
8e54e95
Fix lint issues.
ehsannas Oct 18, 2021
75ed9ae
Update webchannel_connection too.
ehsannas Oct 19, 2021
1397690
Make 'user' optional. And better function name.
ehsannas Oct 19, 2021
b5ceec5
Address code review comments.
ehsannas Oct 19, 2021
6595527
Fix formatting.
ehsannas Oct 19, 2021
333d9a1
update changeset.
ehsannas Oct 19, 2021
840d4ac
try without invokeWithTokens.
ehsannas Oct 19, 2021
dc9505f
Update lite/register.ts.
ehsannas Oct 19, 2021
b8c19a5
Don't add AppCheck token if it's an empty string.
ehsannas Oct 19, 2021
74c041c
Prettier.
ehsannas Oct 20, 2021
537a5fe
Fix firestore-compat.
ehsannas Oct 20, 2021
d5462fe
Prettier.
ehsannas Oct 20, 2021
4fbe5f0
Add LiteAppCheckTokenProvider.
ehsannas Oct 20, 2021
098bdd4
string, not String.
ehsannas Oct 20, 2021
30624ae
Add "Auth" to class names where applicable.
ehsannas Oct 20, 2021
56f121c
Rename authHeaders->headers. Add a test for empty AppCheck token.
ehsannas Oct 20, 2021
0cab393
Better way to apply token headers.
ehsannas Oct 21, 2021
8f8a793
Improve code readability for applying tokens.
ehsannas Nov 4, 2021
f46d21e
Add app-check-interop-types to externs.json.
ehsannas Nov 5, 2021
9e6f82d
Update .changeset/mean-elephants-rush.md
ehsannas Nov 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/mean-elephants-rush.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@firebase/firestore": minor
---

AppCheck integration for Firestore
6 changes: 4 additions & 2 deletions packages/firestore-compat/src/index.console.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ import {
_DatabaseId,
Firestore as FirestoreExp,
FirestoreError,
_EmptyCredentialsProvider
_EmptyAuthCredentialsProvider,
_EmptyAppCheckTokenProvider
} from '@firebase/firestore';

import {
Expand Down Expand Up @@ -91,7 +92,8 @@ export class Firestore extends FirestoreCompat {
databaseIdFromFirestoreDatabase(firestoreDatabase),
new FirestoreExp(
databaseIdFromFirestoreDatabase(firestoreDatabase),
new _EmptyCredentialsProvider()
new _EmptyAuthCredentialsProvider(),
new _EmptyAppCheckTokenProvider()
),
new MemoryPersistenceProvider()
);
Expand Down
1 change: 1 addition & 0 deletions packages/firestore/externs.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"packages/app-types/index.d.ts",
"packages/app-types/private.d.ts",
"packages/app/dist/app.d.ts",
"packages/app-check-interop-types/index.d.ts",
"packages/auth-interop-types/index.d.ts",
"packages/firestore/dist/lite/internal.d.ts",
"packages/firestore/dist/internal.d.ts",
Expand Down
12 changes: 10 additions & 2 deletions packages/firestore/lite/register.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ import {
import { Component, ComponentType } from '@firebase/component';

import { version } from '../package.json';
import { LiteCredentialsProvider } from '../src/api/credentials';
import {
LiteAppCheckTokenProvider,
LiteAuthCredentialsProvider
} from '../src/api/credentials';
import { setSDKVersion } from '../src/core/version';
import { Firestore } from '../src/lite-api/database';
import { FirestoreSettings } from '../src/lite-api/settings';
Expand All @@ -43,7 +46,12 @@ export function registerFirestore(): void {
const app = container.getProvider('app').getImmediate()!;
const firestoreInstance = new Firestore(
app,
new LiteCredentialsProvider(container.getProvider('auth-internal'))
new LiteAuthCredentialsProvider(
container.getProvider('auth-internal')
),
new LiteAppCheckTokenProvider(
container.getProvider('app-check-internal')
)
);
if (settings) {
firestoreInstance._setSettings(settings);
Expand Down
3 changes: 2 additions & 1 deletion packages/firestore/src/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,4 +156,5 @@ export { FieldPath as _FieldPath } from './model/path';
export type { ResourcePath as _ResourcePath } from './model/path';
export type { ByteString as _ByteString } from './util/byte_string';
export { logWarn as _logWarn } from './util/log';
export { EmptyCredentialsProvider as _EmptyCredentialsProvider } from './api/credentials';
export { EmptyAuthCredentialsProvider as _EmptyAuthCredentialsProvider } from './api/credentials';
export { EmptyAppCheckTokenProvider as _EmptyAppCheckTokenProvider } from './api/credentials';
Loading