8000 fix(fdc): Fix issue where auth wasn't properly refreshing id token (#… · firebase/flutterfire@0158ad2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0158ad2

Browse files
authored
fix(fdc): Fix issue where auth wasn't properly refreshing id token (#13509)
1 parent b3822b4 commit 0158ad2

33 files changed

+403
-400
lines changed

packages/firebase_data_connect/firebase_data_connect/example/.firebaserc

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,5 @@
33
"default": "flutterfire-e2e-tests"
44
},
55
"targets": {},
6-
"etags": {},
7-
"dataconnectEmulatorConfig": {
8-
"postgres": {
9-
"localConnectionString": "postgresql://postgres:postgres@localhost:5432/postgres?sslmode=disable"
10-
}
11-
}
6+
"etags": {}
127
}

packages/firebase_data_connect/firebase_data_connect/example/integration_test/generation_e2e.dart

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,40 +30,39 @@ void runGenerationTest() {
3030

3131
testWidgets('should have generated correct MutationRef',
3232
(WidgetTester tester) async {
33-
final ref = MoviesConnector.instance.createMovie
34-
.ref(
33+
final ref = MoviesConnector.instance
34+
.createMovie(
3535
genre: 'Action',
3636
title: 'The Matrix',
3737
releaseYear: 1999,
3838
)
3939
.rating(4.5);
4040
expect(ref, isNotNull);
41-
expect(ref.build().execute, isNotNull);
41+
expect(ref.execute, isNotNull);
4242
});
4343

4444
testWidgets('should have generated correct QueryRef',
4545
(WidgetTester tester) async {
46-
final ref = MoviesConnector.instance.listMovies.ref();
46+
final ref = MoviesConnector.instance.listMovies().ref();
4747
expect(ref, isNotNull);
48-
expect(ref.build().execute, isNotNull);
48+
expect(ref.execute, isNotNull);
4949
});
5050

5151
testWidgets('should have generated correct MutationRef using name',
5252
(WidgetTester tester) async {
53-
final ref =
54-
MoviesConnector.instance.addPerson.ref().name('Keanu Reeves');
53+
final ref = MoviesConnector.instance.addPerson().name('Keanu Reeves');
5554
expect(ref, isNotNull);
56-
expect(ref.build().execute, isNotNull);
55+
expect(ref.execute, isNotNull);
5756
});
5857

5958
testWidgets('should have generated correct MutationRef using nested id',
6059
(WidgetTester tester) async {
61-
final ref = MoviesConnector.instance.addDirectorToMovie
62-
.ref()
60+
final ref = MoviesConnector.instance
61+
.addDirectorToMovie()
6362
.movieId('movieId')
6463
.personId(AddDirectorToMovieVariablesPersonId(id: 'personId'));
6564
expect(ref, isNotNull);
66-
expect(ref.build().execute, isNotNull);
65+
expect(ref.execute, isNotNull);
6766
});
6867
},
6968
);

packages/firebase_data_connect/firebase_data_connect/example/integration_test/listen_e2e.dart

Lines changed: 7 additions & 7 deletions
< 67DE th scope="col">Diff line change
Original file line numberDiff line number
@@ -21,17 +21,17 @@ void runListenTests() {
2121
testWidgets('should be able to listen to the list of movies',
2222
(WidgetTester tester) async {
2323
final initialValue =
24-
await MoviesConnector.instance.listMovies.ref().build().execute();
24+
await MoviesConnector.instance.listMovies().ref().execute();
2525
expect(initialValue.data.movies.length, 0,
2626
reason: 'Initial movie list should be empty');
2727

2828
final Completer<void> isReady = Completer<void>();
2929
final Completer<bool> hasBeenListened = Completer<bool>();
3030
int count = 0;
3131

32-
final listener = MoviesConnector.instance.listMovies
32+
final listener = MoviesConnector.instance
33+
.listMovies()
3334
.ref()
34-
.build()
3535
.subscribe()
3636
.listen((value) {
3737
final movies = value.data.movies;
@@ -54,17 +54,17 @@ void runListenTests() {
5454
await isReady.future;
5555

5656
// Create the movie
57-
await MoviesConnector.instance.createMovie
58-
.ref(
57+
await MoviesConnector.instance
58+
.createMovie(
5959
genre: 'Action',
6060
title: 'The Matrix',
6161
releaseYear: 1999,
6262
)
6363
.rating(4.5)
64-
.build()
64+
.ref()
6565
.execute();
6666

67-
await MoviesConnector.instance.listMovies.ref().build().execute();
67+
await MoviesConnector.instance.listMovies().ref().execute();
6868

6969
// Wait for the listener to receive the movie update
7070
final bool hasListenerReceived = await hasBeenListened.future;

packages/firebase_data_connect/firebase_data_connect/example/integration_test/query_e2e.dart

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,10 @@ import 'package:firebase_data_connect_example/generated/movies.dart';
77
import 'package:flutter_test/flutter_test.dart';
88

99
Future<void> deleteAllMovies() async {
10-
final value =
11-
await MoviesConnector.instance.listMovies.ref().build().execute();
10+
final value = await MoviesConnector.instance.listMovies().ref().execute();
1211
final result = value.data;
1312
for (var movie in result.movies) {
14-
await MoviesConnector.instance.deleteMovie
15-
.ref(id: movie.id)
16-
.build()
17-
.execute();
13+
await MoviesConnector.instance.deleteMovie(id: movie.id).ref().execute();
1814
}
1915
}
2016

@@ -28,109 +24,107 @@ void runQueryTests() {
2824

2925
testWidgets('can query', (WidgetTester tester) async {
3026
final value =
31-
await MoviesConnector.instance.listMovies.ref().build().execute();
27+
await MoviesConnector.instance.listMovies().ref().execute();
3228

3329
final result = value.data;
3430
expect(result.movies.length, 0);
3531
});
3632

3733
testWidgets('can add a movie', (WidgetTester tester) async {
38-
MutationRef ref = MoviesConnector.instance.createMovie
39-
.ref(
34+
MutationRef ref = MoviesConnector.instance
35+
.createMovie(
4036
genre: 'Action',
4137
title: 'The Matrix',
4238
releaseYear: 1999,
4339
)
4440
3E14 .rating(4.5)
45-
.build();
41+
.ref();
4642

4743
await ref.execute();
4844

4945
final value =
50-
await MoviesConnector.instance.listMovies.ref().build().execute();
46+
await MoviesConnector.instance.listMovies().ref().execute();
5147
final result = value.data;
5248
expect(result.movies.length, 1);
5349
expect(result.movies[0].title, 'The Matrix');
5450
});
5551

5652
testWidgets('can add a director to a movie', (WidgetTester tester) async {
57-
MutationRef ref = MoviesConnector.instance.addPerson
58-
.ref()
59-
.name('Keanu Reeves')
60-
.build();
53+
MutationRef ref =
54+
MoviesConnector.instance.addPerson().name('Keanu Reeves').ref();
6155

6256
await ref.execute();
6357

6458
final personId =
65-
(await MoviesConnector.instance.listPersons.ref().build().execute())
59+
(await MoviesConnector.instance.listPersons().ref().execute())
6660
.data
6761
.people[0]
6862
.id;
6963

7064
final value =
71-
await MoviesConnector.instance.listMovies.ref().build().execute();
65+
await MoviesConnector.instance.listMovies().ref().execute();
7266
final result = value.data;
7367
expect(result.movies.length, 0);
7468

75-
ref = MoviesConnector.instance.createMovie
76-
.ref(
69+
ref = MoviesConnector.instance
70+
.createMovie(
7771
genre: 'Action',
7872
title: 'The Matrix',
7973
releaseYear: 1999,
8074
)
8175
.rating(4.5)
82-
.build();
76+
.ref();
8377

8478
await ref.execute();
8579

8680
final value2 =
87-
await MoviesConnector.instance.listMovies.ref().build().execute();
81+
await MoviesConnector.instance.listMovies().ref().execute();
8882
final result2 = value2.data;
8983
expect(result2.movies.length, 1);
9084

9185
final movieId = result2.movies[0].id;
9286

93-
ref = MoviesConnector.instance.addDirectorToMovie
94-
.ref()
87+
ref = MoviesConnector.instance
88+
.addDirectorToMovie()
9589
.movieId(movieId)
9690
.personId(AddDirectorToMovieVariablesPersonId(id: personId))
97-
.build();
91+
.ref();
9892

9993
await ref.execute();
10094

10195
final value3 =
102-
await MoviesConnector.instance.listMovies.ref().build().execute();
96+
await MoviesConnector.instance.listMovies().ref().execute();
10397
final result3 = value3.data;
10498
expect(result3.movies.length, 1);
10599
expect(result3.movies[0].directed_by.length, 1);
106100
expect(result3.movies[0].directed_by[0].name, 'Keanu Reeves');
107101
});
108102

109103
testWidgets('can delete a movie', (WidgetTester tester) async {
110-
MutationRef ref = MoviesConnector.instance.createMovie
111-
.ref(
104+
MutationRef ref = MoviesConnector.instance
105+
.createMovie(
112106
genre: 'Action',
113107
title: 'The Matrix',
114108
releaseYear: 1999,
115109
)
116110
.rating(4.5)
117-
.build();
111+
.ref();
118112

119113
await ref.execute();
120114

121115
final value =
122-
await MoviesConnector.instance.listMovies.ref().build().execute();
116+
await MoviesConnector.instance.listMovies().ref().execute();
123117
final result = value.data;
124118
expect(result.movies.length, 1);
125119

126120
final movieId = result.movies[0].id;
127121

128-
ref = MoviesConnector.instance.deleteMovie.ref(id: movieId).build();
122+
ref = MoviesConnector.instance.deleteMovie(id: movieId).ref();
129123

130124
await ref.execute();
131125

132126
final value2 =
133-
await MoviesConnector.instance.listMovies.ref().build().execute();
127+
await MoviesConnector.instance.listMovies().ref().execute();
134128
final result2 = value2.data;
135129
expect(result2.movies.length, 0);
136130
});

packages/firebase_data_connect/firebase_data_connect/example/lib/generated/add_date_and_timestamp.dart

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@ class AddDateAndTimestampVariablesBuilder {
1515
(dynamic json) => AddDateAndTimestampData.fromJson(jsonDecode(json));
1616
Serializer<AddDateAndTimestampVariables> varsSerializer =
1717
(AddDateAndTimestampVariables vars) => jsonEncode(vars.toJson());
18-
MutationRef<AddDateAndTimestampData, AddDateAndTimestampVariables> build() {
18+
Future<OperationResult<AddDateAndTimestampData, AddDateAndTimestampVariables>>
19+
execute() {
20+
return this.ref().execute();
21+
}
22+
23+
MutationRef<AddDateAndTimestampData, AddDateAndTimestampVariables> ref() {
1924
AddDateAndTimestampVariables vars = AddDateAndTimestampVariables(
2025
date: date,
2126
timestamp: timestamp,
@@ -26,23 +31,6 @@ class AddDateAndTimestampVariablesBuilder {
2631
}
2732
}
2833

29-
class AddDateAndTimestamp {
30-
String name = "addDateAndTimestamp";
31-
AddDateAndTimestamp({required this.dataConnect});
32-
AddDateAndTimestampVariablesBuilder ref({
33-
required DateTime date,
34-
required Timestamp timestamp,
35-
}) {
36-
return AddDateAndTimestampVariablesBuilder(
37-
dataConnect,
38-
date: date,
39-
timestamp: timestamp,
40-
);
41-
}
42-
43-
FirebaseDataConnect dataConnect;
44-
}
45-
4634
class AddDateAndTimestampTimestampHolderInsert {
4735
String id;
4836

packages/firebase_data_connect/firebase_data_connect/example/lib/generated/add_director_to_movie.dart

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@ class AddDirectorToMovieVariablesBuilder {
2424
(dynamic json) => AddDirectorToMovieData.fromJson(jsonDecode(json));
2525
Serializer<AddDirectorToMovieVariables> varsSerializer =
2626
(AddDirectorToMovieVariables vars) => jsonEncode(vars.toJson());
27-
MutationRef<AddDirectorToMovieData, AddDirectorToMovieVariables> build() {
27+
Future<OperationResult<AddDirectorToMovieData, AddDirectorToMovieVariables>>
28+
execute() {
29+
return this.ref().execute();
30+
}
31+
32+
MutationRef<AddDirectorToMovieData, AddDirectorToMovieVariables> ref() {
2833
AddDirectorToMovieVariables vars = AddDirectorToMovieVariables(
2934
personId: _personId,
3035
movieId: _movieId,
@@ -35,18 +40,6 @@ class AddDirectorToMovieVariablesBuilder {
3540
}
3641
}
3742

38-
class AddDirectorToMovie {
39-
String name = "addDirectorToMovie";
40-
AddDirectorToMovie({required this.dataConnect});
41-
AddDirectorToMovieVariablesBuilder ref() {
42-
return AddDirectorToMovieVariablesBuilder(
43-
dataConnect,
44-
);
45-
}
46-
47-
FirebaseDataConnect dataConnect;
48-
}
49-
5043
class AddDirectorToMovieDirectedByInsert {
5144
String directedbyId;
5245

packages/firebase_data_connect/firebase_data_connect/example/lib/generated/add_person.dart

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@ class AddPersonVariablesBuilder {
1616
(dynamic json) => AddPersonData.fromJson(jsonDecode(json));
1717
Serializer<AddPersonVariables> varsSerializer =
1818
(AddPersonVariables vars) => jsonEncode(vars.toJson());
19-
MutationRef<AddPersonData, AddPersonVariables> build() {
19+
Future<OperationResult<AddPersonData, AddPersonVariables>> execute() {
20+
return this.ref().execute();
21+
}
22+
23+
MutationRef<AddPersonData, AddPersonVariables> ref() {
2024
AddPersonVariables vars = AddPersonVariables(
2125
name: _name,
2226
);
@@ -26,18 +30,6 @@ class AddPersonVariablesBuilder {
2630
}
2731
}
2832

29-
class AddPerson {
30-
String name = "addPerson";
31-
AddPerson({required this.dataConnect});
32-
AddPersonVariablesBuilder ref() {
33-
return AddPersonVariablesBuilder(
34-
dataConnect,
35-
);
36-
}
37-
38-
FirebaseDataConnect dataConnect;
39-
}
40-
4133
class AddPersonPersonInsert {
4234
String id;
4335

packages/firebase_data_connect/firebase_data_connect/example/lib/generated/add_timestamp.dart

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ class AddTimestampVariablesBuilder {
1313
(dynamic json) => AddTimestampData.fromJson(jsonDecode(json));
1414
Serializer<AddTimestampVariables> varsSerializer =
1515
(AddTimestampVariables vars) => jsonEncode(vars.toJson());
16-
MutationRef<AddTimestampData, AddTimestampVariables> build() {
16+
Future<OperationResult<AddTimestampData, AddTimestampVariables>> execute() {
17+
return this.ref().execute();
18+
}
19+
20+
MutationRef<AddTimestampData, AddTimestampVariables> ref() {
1721
AddTimestampVariables vars = AddTimestampVariables(
1822
timestamp: timestamp,
1923
);
@@ -23,21 +27,6 @@ class AddTimestampVariablesBuilder {
2327
}
2428
}
2529

26-
class AddTimestamp {
27-
String name = "addTimestamp";
28-
AddTimestamp({required this.dataConnect});
29-
AddTimestampVariablesBuilder ref({
30-
required Timestamp timestamp,
31-
}) {
32-
return AddTimestampVariablesBuilder(
33-
dataConnect,
34-
timestamp: timestamp,
35-
);
36-
}
37-
38-
FirebaseDataConnect dataConnect;
39-
}
40-
4130
class AddTimestampTimestampHolderInsert {
4231
String id;
4332

0 commit comments

Comments
 (0)
0