Skip to content

Commit 960c1a9

Browse files
committed
fix(cloud_firestore): resolve CI failures after pigeon 26 upgrade
- iOS/macOS: rename remaining `PigeonTransaction*` enum cases to the `InternalTransaction*` values Pigeon 26 now generates (`FLTTransactionStreamHandler.m`, `FLTFirebaseFirestorePlugin.m`). - Windows: disambiguate the generated `PersistenceCacheIndexManagerRequest` enum from the host-API method of the same name by renaming the enum to `PersistenceCacheIndexManagerRequestEnum` in post-processing and add the corresponding sed pass to `generate_pigeon.sh`. - Analyze: exclude pigeon input/output files from analysis across every platform-interface package (adds `pigeons/messages.dart` to the exclude list and creates missing `analysis_options.yaml` for cloud_firestore and firebase_app_check) so Pigeon 26's new infos/warnings stop breaking `dart analyze --fatal-infos`. - pub_dry_run: add the missing `meta` dependency to `firebase_performance_platform_interface` (the new generated code imports `package:meta/meta.dart`).
1 parent b5ffa99 commit 960c1a9

File tree

15 files changed

+59
-17
lines changed

15 files changed

+59
-17
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Copyright 2026 The Chromium Authors. All rights reserved.
2+
# Use of this source code is governed by a BSD-style license that can be
3+
# in the LICENSE file.
4+
5+
include: ../../analysis_options.yaml
6+
7+
analyzer:
8+
exclude:
9+
- cloud_firestore_platform_interface/lib/src/pigeon/messages.pigeon.dart
10+
- cloud_firestore_platform_interface/test/pigeon/test_api.dart
11+
- cloud_firestore_platform_interface/pigeons/messages.dart

packages/cloud_firestore/cloud_firestore/ios/cloud_firestore/Sources/cloud_firestore/FLTFirebaseFirestorePlugin.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -713,15 +713,15 @@ - (void)writeBatchCommitApp:(nonnull FirestorePigeonFirebaseApp *)app
713713
FIRDocumentReference *reference = [firestore documentWithPath:path];
714714

715715
switch (type) {
716-
case PigeonTransactionTypeGet:
716+
case InternalTransactionTypeGet:
717717
break;
718-
case PigeonTransactionTypeDeleteType:
718+
case InternalTransactionTypeDeleteType:
719719
[batch deleteDocument:reference];
720720
break;
721-
case PigeonTransactionTypeUpdate:
721+
case InternalTransactionTypeUpdate:
722722
[batch updateData:write.data forDocument:reference];
723723
break;
724-
case PigeonTransactionTypeSet:
724+
case InternalTransactionTypeSet:
725725
if ([write.option.merge isEqual:@YES]) {
726726
[batch setData:write.data forDocument:reference merge:YES];
727727
} else if (write.option.mergeFields) {

packages/cloud_firestore/cloud_firestore/ios/cloud_firestore/Sources/cloud_firestore/FLTTransactionStreamHandler.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ - (FlutterError *_Nullable)onListenWithArguments:(id _Nullable)arguments
8080
});
8181
}
8282

83-
if (self.resultType == PigeonTransactionResultFailure) {
83+
if (self.resultType == InternalTransactionResultFailure) {
8484
// Do nothing - already handled in Dart land.
8585
return nil;
8686
}
@@ -91,13 +91,13 @@ - (FlutterError *_Nullable)onListenWithArguments:(id _Nullable)arguments
9191
FIRDocumentReference *reference = [self.firestore documentWithPath:documentPath];
9292

9393
switch (commandType) {
94-
case PigeonTransactionTypeDeleteType:
94+
case InternalTransactionTypeDeleteType:
9595
[transaction deleteDocument:reference];
9696
break;
97-
case PigeonTransactionTypeUpdate:
97+
case InternalTransactionTypeUpdate:
9898
[transaction updateData:command.data forDocument:reference];
9999
break;
100-
case PigeonTransactionTypeSet:
100+
case InternalTransactionTypeSet:
101101
if ([command.option.merge isEqual:@YES]) {
102102
[transaction setData:command.data forDocument:reference merge:YES];
103103
} else if (command.option.mergeFields) {

packages/cloud_firestore/cloud_firestore/windows/messages.g.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1901,7 +1901,7 @@ EncodableValue FirebaseFirestoreHostApiCodecSerializer::ReadValueOfType(
19011901
return encodable_enum_arg.IsNull()
19021902
? EncodableValue()
19031903
: CustomEncodableValue(
1904-
static_cast<PersistenceCacheIndexManagerRequest>(
1904+
static_cast<PersistenceCacheIndexManagerRequestEnum>(
19051905
enum_arg_value));
19061906
}
19071907
case 135: {
@@ -2036,10 +2036,10 @@ void FirebaseFirestoreHostApiCodecSerializer::WriteValue(
20362036
stream);
20372037
return;
20382038
}
2039-
if (custom_value->type() == typeid(PersistenceCacheIndexManagerRequest)) {
2039+
if (custom_value->type() == typeid(PersistenceCacheIndexManagerRequestEnum)) {
20402040
stream->WriteByte(134);
20412041
WriteValue(EncodableValue(static_cast<int>(
2042-
std::any_cast<PersistenceCacheIndexManagerRequest>(
2042+
std::any_cast<PersistenceCacheIndexManagerRequestEnum>(
20432043
*custom_value))),
20442044
stream);
20452045
return;
@@ -3354,7 +3354,7 @@ void FirebaseFirestoreHostApi::SetUp(
33543354
return;
33553355
}
33563356
const auto& request_arg =
3357-
std::any_cast<const PersistenceCacheIndexManagerRequest&>(
3357+
std::any_cast<const PersistenceCacheIndexManagerRequestEnum&>(
33583358
std::get<CustomEncodableValue>(encodable_request_arg));
33593359
api->PersistenceCacheIndexManagerRequest(
33603360
app_arg, request_arg,

packages/cloud_firestore/cloud_firestore/windows/messages.g.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,9 @@ enum class AggregateSource {
134134
kServer = 0
135135
};
136136

137-
// [PersistenceCacheIndexManagerRequest] represents the request types for the
137+
// [PersistenceCacheIndexManagerRequestEnum] represents the request types for the
138138
// persistence cache index manager.
139-
enum class PersistenceCacheIndexManagerRequest {
139+
enum class PersistenceCacheIndexManagerRequestEnum {
140140
kEnableIndexAutoCreation = 0,
141141
kDisableIndexAutoCreation = 1,
142142
kDeleteAllIndexes = 2
@@ -919,7 +919,7 @@ class FirebaseFirestoreHostApi {
919919
std::function<void(ErrorOr<std::string> reply)> result) = 0;
920920
virtual void PersistenceCacheIndexManagerRequest(
921921
const FirestorePigeonFirebaseApp& app,
922-
const PersistenceCacheIndexManagerRequest& request,
922+
const PersistenceCacheIndexManagerRequestEnum& request,
923923
std::function<void(std::optional<FlutterError> reply)> result) = 0;
924924
virtual void ExecutePipeline(
925925
const FirestorePigeonFirebaseApp& app,

packages/cloud_firestore/cloud_firestore_platform_interface/pigeons/generate_pigeon.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,16 @@ sed -i '' 's/PigeonInternalCodecSerializer/FirebaseFirestoreHostApiCodecSerializ
5959
sed -i '' 's|::flutter::StandardCodecSerializer::WriteValue(value, stream)|::cloud_firestore_windows::FirestoreCodec::WriteValue(value, stream)|' $FILE_NAME
6060
sed -i '' 's|::flutter::StandardCodecSerializer::ReadValueOfType(type, stream)|::cloud_firestore_windows::FirestoreCodec::ReadValueOfType(type, stream)|' $FILE_NAME
6161

62+
# Pigeon 26 no longer auto-renames a C++ enum whose identifier collides with a method in the same
63+
# scope. The `PersistenceCacheIndexManagerRequest` enum collides with the host API method of the
64+
# same name, which fails to compile on MSVC. Rename every *usage* of the enum type (but keep the
65+
# method name intact) by first renaming the identifier globally and then restoring call/method
66+
# sites that are followed by `(`.
67+
for FILE_NAME in "../../cloud_firestore/windows/messages.g.h" "../../cloud_firestore/windows/messages.g.cpp"; do
68+
sed -i '' 's/PersistenceCacheIndexManagerRequest/PersistenceCacheIndexManagerRequestEnum/g' $FILE_NAME
69+
sed -i '' 's/PersistenceCacheIndexManagerRequestEnum(/PersistenceCacheIndexManagerRequest(/g' $FILE_NAME
70+
done
71+
6272
echo "Windows modification complete."
6373

6474
# Fix Dart files

packages/cloud_functions/analysis_options.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ include: ../../analysis_options.yaml
77
analyzer:
88
exclude:
99
- cloud_functions_platform_interface/lib/src/pigeon/messages.pigeon.dart
10-
- cloud_functions_platform_interface/test/pigeon/test_api.dart
10+
- cloud_functions_platform_interface/test/pigeon/test_api.dart
11+
- cloud_functions_platform_interface/pigeons/messages.dart

packages/firebase_analytics/analysis_options.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ analyzer:
88
exclude:
99
- firebase_analytics_platform_interface/lib/src/pigeon/messages.pigeon.dart
1010
- firebase_analytics_platform_interface/test/pigeon/test_api.dart
11+
- firebase_analytics_platform_interface/pigeons/messages.dart
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Copyright 2026 The Chromium Authors. All rights reserved.
2+
# Use of this source code is governed by a BSD-style license that can be
3+
# in the LICENSE file.
4+
5+
include: ../../analysis_options.yaml
6+
7+
analyzer:
8+
exclude:
9+
- firebase_app_check_platform_interface/lib/src/pigeon/messages.pigeon.dart
10+
- firebase_app_check_platform_interface/pigeons/messages.dart

packages/firebase_auth/analysis_options.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ analyzer:
99
exclude:
1010
- firebase_auth_platform_interface/lib/src/pigeon/messages.pigeon.dart
1111
- firebase_auth_platform_interface/test/pigeon/test_api.dart
12+
- firebase_auth_platform_interface/pigeons/messages.dart

0 commit comments

Comments
 (0)