Skip to content

Commit 08b60a9

Browse files
committed
Revert "Revert "gRPC: replace Objective-C implementation with the new C++ implementation (#1968)" (#2030)"
This reverts commit ea567dc.
1 parent ab57eed commit 08b60a9

39 files changed

+4947
-3166
lines changed

FirebaseFirestore.podspec

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,12 @@ Google Cloud Firestore is a NoSQL document database built for automatic scaling,
4747
]
4848
s.public_header_files = 'Firestore/Source/Public/*.h'
4949

50+
# TODO(varconst): remove once https://github.com/grpc/grpc/pull/16962 makes it
51+
# into a release.
52+
s.resource_bundles = { 'gRPCCertificates' => ['Firestore/etc/roots.pem'] }
53+
5054
s.dependency 'FirebaseAuthInterop', '~> 1.0'
5155
s.dependency 'FirebaseCore', '~> 5.1'
52-
s.dependency 'gRPC-ProtoRPC', '~> 1.0'
5356
s.dependency 'gRPC-C++', '~> 0.0.3'
5457
s.dependency 'leveldb-library', '~> 1.20'
5558
s.dependency 'Protobuf', '~> 3.1'

Firestore/Example/Firestore.xcodeproj/project.pbxproj

Lines changed: 38 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@
8282
5492E07A202154D600B64F25 /* FIRTypeTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E071202154D600B64F25 /* FIRTypeTests.mm */; };
8383
5492E07F202154EC00B64F25 /* FSTTransactionTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E07B202154EB00B64F25 /* FSTTransactionTests.mm */; };
8484
5492E080202154EC00B64F25 /* FSTSmokeTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E07C202154EB00B64F25 /* FSTSmokeTests.mm */; };
85-
5492E081202154EC00B64F25 /* FSTStreamTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E07D202154EB00B64F25 /* FSTStreamTests.mm */; };
8685
5492E082202154EC00B64F25 /* FSTDatastoreTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E07E202154EC00B64F25 /* FSTDatastoreTests.mm */; };
8786
5492E09D2021552D00B64F25 /* FSTLocalStoreTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E0832021552A00B64F25 /* FSTLocalStoreTests.mm */; };
8887
5492E09F2021552D00B64F25 /* FSTLevelDBMigrationsTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5492E0862021552A00B64F25 /* FSTLevelDBMigrationsTests.mm */; };
@@ -363,7 +362,6 @@
363362
5492E071202154D600B64F25 /* FIRTypeTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FIRTypeTests.mm; sourceTree = "<group>"; };
364363
5492E07B202154EB00B64F25 /* FSTTransactionTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTTransactionTests.mm; sourceTree = "<group>"; };
365364
5492E07C202154EB00B64F25 /* FSTSmokeTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTSmokeTests.mm; sourceTree = "<group>"; };
366-
5492E07D202154EB00B64F25 /* FSTStreamTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTStreamTests.mm; sourceTree = "<group>"; };
367365
5492E07E202154EC00B64F25 /* FSTDatastoreTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTDatastoreTests.mm; sourceTree = "<group>"; };
368366
5492E0832021552A00B64F25 /* FSTLocalStoreTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FSTLocalStoreTests.mm; sourceTree = "<group>"; };
369367
5492E0852021552A00B64F25 /* FSTRemoteDocumentCacheTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSTRemoteDocumentCacheTests.h; sourceTree = "<group>"; };
@@ -1245,7 +1243,6 @@
12451243
DE03B3621F215E1600A30B9C /* CAcert.pem */,
12461244
5492E07E202154EC00B64F25 /* FSTDatastoreTests.mm */,
12471245
5492E07C202154EB00B64F25 /* FSTSmokeTests.mm */,
1248-
5492E07D202154EB00B64F25 /* FSTStreamTests.mm */,
12491246
5492E07B202154EB00B64F25 /* FSTTransactionTests.mm */,
12501247
);
12511248
path = Integration;
@@ -1281,6 +1278,7 @@
12811278
54C9EDEE2040E16300A969CD /* Frameworks */,
12821279
54C9EDEF2040E16300A969CD /* Resources */,
12831280
EA424838F4A5DD7B337F57AB /* [CP] Embed Pods Frameworks */,
1281+
DE5C36328822481F6EB6EF16 /* [CP] Copy Pods Resources */,
12841282
);
12851283
buildRules = (
12861284
);
@@ -1321,6 +1319,7 @@
13211319
6003F587195388D20070C39A /* Frameworks */,
13221320
6003F588195388D20070C39A /* Resources */,
13231321
1EE692C7509A98D7EB03CA51 /* [CP] Embed Pods Frameworks */,
1322+
1E7DAED3207D01F1744EA227 /* [CP] Copy Pods Resources */,
13241323
);
13251324
buildRules = (
13261325
);
@@ -1521,6 +1520,24 @@
15211520
/* End PBXResourcesBuildPhase section */
15221521

15231522
/* Begin PBXShellScriptBuildPhase section */
1523+
1E7DAED3207D01F1744EA227 /* [CP] Copy Pods Resources */ = {
1524+
isa = PBXShellScriptBuildPhase;
1525+
buildActionMask = 2147483647;
1526+
files = (
1527+
);
1528+
inputPaths = (
1529+
"${SRCROOT}/Pods/Target Support Files/Pods-Firestore_Example_iOS/Pods-Firestore_Example_iOS-resources.sh",
1530+
"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseFirestore/gRPCCertificates.bundle",
1531+
);
1532+
name = "[CP] Copy Pods Resources";
1533+
outputPaths = (
1534+
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gRPCCertificates.bundle",
1535+
);
1536+
runOnlyForDeploymentPostprocessing = 0;
1537+
shellPath = /bin/sh;
1538+
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Firestore_Example_iOS/Pods-Firestore_Example_iOS-resources.sh\"\n";
1539+
showEnvVarsInLog = 0;
1540+
};
15241541
1EE692C7509A98D7EB03CA51 /* [CP] Embed Pods Frameworks */ = {
15251542
isa = PBXShellScriptBuildPhase;
15261543
buildActionMask = 2147483647;
@@ -1532,11 +1549,8 @@
15321549
"${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework",
15331550
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
15341551
"${BUILT_PRODUCTS_DIR}/Protobuf-iOS8.0/Protobuf.framework",
1535-
"${BUILT_PRODUCTS_DIR}/gRPC/GRPCClient.framework",
15361552
"${BUILT_PRODUCTS_DIR}/gRPC-C++/grpcpp.framework",
15371553
"${BUILT_PRODUCTS_DIR}/gRPC-Core/grpc.framework",
1538-
"${BUILT_PRODUCTS_DIR}/gRPC-ProtoRPC/ProtoRPC.framework",
1539-
"${BUILT_PRODUCTS_DIR}/gRPC-RxLibrary/RxLibrary.framework",
15401554
"${BUILT_PRODUCTS_DIR}/leveldb-library/leveldb.framework",
15411555
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
15421556
);
@@ -1546,11 +1560,8 @@
15461560
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework",
15471561
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
15481562
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Protobuf.framework",
1549-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GRPCClient.framework",
15501563
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/grpcpp.framework",
15511564
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/grpc.framework",
1552-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ProtoRPC.framework",
1553-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxLibrary.framework",
15541565
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/leveldb.framework",
15551566
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
15561567
);
@@ -1768,6 +1779,24 @@
17681779
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
17691780
showEnvVarsInLog = 0;
17701781
};
1782+
DE5C36328822481F6EB6EF16 /* [CP] Copy Pods Resources */ = {
1783+
isa = PBXShellScriptBuildPhase;
1784+
buildActionMask = 2147483647;
1785+
files = (
1786+
);
1787+
inputPaths = (
1788+
"${SRCROOT}/Pods/Target Support Files/Pods-Firestore_Example_iOS-Firestore_SwiftTests_iOS/Pods-Firestore_Example_iOS-Firestore_SwiftTests_iOS-resources.sh",
1789+
"${PODS_CONFIGURATION_BUILD_DIR}/FirebaseFirestore/gRPCCertificates.bundle",
1790+
);
1791+
name = "[CP] Copy Pods Resources";
1792+
outputPaths = (
1793+
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/gRPCCertificates.bundle",
1794+
);
1795+
runOnlyForDeploymentPostprocessing = 0;
1796+
shellPath = /bin/sh;
1797+
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Firestore_Example_iOS-Firestore_SwiftTests_iOS/Pods-Firestore_Example_iOS-Firestore_SwiftTests_iOS-resources.sh\"\n";
1798+
showEnvVarsInLog = 0;
1799+
};
17711800
EA424838F4A5DD7B337F57AB /* [CP] Embed Pods Frameworks */ = {
17721801
isa = PBXShellScriptBuildPhase;
17731802
buildActionMask = 2147483647;
@@ -1779,11 +1808,8 @@
17791808
"${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework",
17801809
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
17811810
"${BUILT_PRODUCTS_DIR}/Protobuf-iOS8.0/Protobuf.framework",
1782-
"${BUILT_PRODUCTS_DIR}/gRPC/GRPCClient.framework",
17831811
"${BUILT_PRODUCTS_DIR}/gRPC-C++/grpcpp.framework",
17841812
"${BUILT_PRODUCTS_DIR}/gRPC-Core/grpc.framework",
1785-
"${BUILT_PRODUCTS_DIR}/gRPC-ProtoRPC/ProtoRPC.framework",
1786-
"${BUILT_PRODUCTS_DIR}/gRPC-RxLibrary/RxLibrary.framework",
17871813
"${BUILT_PRODUCTS_DIR}/leveldb-library/leveldb.framework",
17881814
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
17891815
);
@@ -1793,11 +1819,8 @@
17931819
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework",
17941820
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
17951821
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Protobuf.framework",
1796-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GRPCClient.framework",
17971822
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/grpcpp.framework",
17981823
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/grpc.framework",
1799-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ProtoRPC.framework",
1800-
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxLibrary.framework",
18011824
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/leveldb.framework",
18021825
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
18031826
);
@@ -2018,7 +2041,6 @@
20182041
5492E0422021440500B64F25 /* FSTHelpers.mm in Sources */,
20192042
5491BC731FB44593008B3588 /* FSTIntegrationTestCase.mm in Sources */,
20202043
5492E080202154EC00B64F25 /* FSTSmokeTests.mm in Sources */,
2021-
5492E081202154EC00B64F25 /* FSTStreamTests.mm in Sources */,
20222044
5492E07F202154EC00B64F25 /* FSTTransactionTests.mm in Sources */,
20232045
5492E0442021457E00B64F25 /* XCTestCase+Await.mm in Sources */,
20242046
B67BF44A216EB43000CA9097 /* create_noop_connectivity_monitor.cc in Sources */,
@@ -2231,14 +2253,6 @@
22312253
"-iquote",
22322254
"\"${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers\"",
22332255
"-iquote",
2234-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-Core/grpc.framework/Headers\"",
2235-
"-iquote",
2236-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-ProtoRPC/ProtoRPC.framework/Headers\"",
2237-
"-iquote",
2238-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-RxLibrary/RxLibrary.framework/Headers\"",
2239-
"-iquote",
2240-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC/GRPCClient.framework/Headers\"",
2241-
"-iquote",
22422256
"\"${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers\"",
22432257
"-iquote",
22442258
"\"${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers\"",
@@ -2315,14 +2329,6 @@
23152329
"-iquote",
23162330
"\"${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers\"",
23172331
"-iquote",
2318-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-Core/grpc.framework/Headers\"",
2319-
"-iquote",
2320-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-ProtoRPC/ProtoRPC.framework/Headers\"",
2321-
"-iquote",
2322-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-RxLibrary/RxLibrary.framework/Headers\"",
2323-
"-iquote",
2324-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC/GRPCClient.framework/Headers\"",
2325-
"-iquote",
23262332
"\"${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers\"",
23272333
"-iquote",
23282334
"\"${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers\"",
@@ -2524,14 +2530,6 @@
25242530
"-iquote",
25252531
"\"${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers\"",
25262532
"-iquote",
2527-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-Core/grpc.framework/Headers\"",
2528-
"-iquote",
2529-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-ProtoRPC/ProtoRPC.framework/Headers\"",
2530-
"-iquote",
2531-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-RxLibrary/RxLibrary.framework/Headers\"",
2532-
"-iquote",
2533-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC/GRPCClient.framework/Headers\"",
2534-
"-iquote",
25352533
"\"${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers\"",
25362534
"-iquote",
25372535
"\"${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers\"",
@@ -2609,14 +2607,6 @@
26092607
"-iquote",
26102608
"\"${PODS_CONFIGURATION_BUILD_DIR}/Protobuf/Protobuf.framework/Headers\"",
26112609
"-iquote",
2612-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-Core/grpc.framework/Headers\"",
2613-
"-iquote",
2614-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-ProtoRPC/ProtoRPC.framework/Headers\"",
2615-
"-iquote",
2616-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC-RxLibrary/RxLibrary.framework/Headers\"",
2617-
"-iquote",
2618-
"\"${PODS_CONFIGURATION_BUILD_DIR}/gRPC/GRPCClient.framework/Headers\"",
2619-
"-iquote",
26202610
"\"${PODS_CONFIGURATION_BUILD_DIR}/leveldb-library/leveldb.framework/Headers\"",
26212611
"-iquote",
26222612
"\"${PODS_CONFIGURATION_BUILD_DIR}/nanopb/nanopb.framework/Headers\"",

Firestore/Example/Tests/Integration/FSTDatastoreTests.mm

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
#import <FirebaseFirestore/FirebaseFirestore.h>
1818

1919
#import <FirebaseFirestore/FIRTimestamp.h>
20-
#import <GRPCClient/GRPCCall+ChannelCredentials.h>
21-
#import <GRPCClient/GRPCCall+Tests.h>
2220
#import <XCTest/XCTest.h>
2321

2422
#import "Firestore/Source/API/FIRDocumentReference+Internal.h"
@@ -52,6 +50,7 @@
5250
using firebase::firestore::model::DocumentKeySet;
5351
using firebase::firestore::model::Precondition;
5452
using firebase::firestore::model::TargetId;
53+
using firebase::firestore::remote::GrpcConnection;
5554

5655
NS_ASSUME_NONNULL_BEGIN
5756

@@ -162,7 +161,7 @@ - (void)setUp {
162161
NSString *projectID = [FSTIntegrationTestCase projectID];
163162
FIRFirestoreSettings *settings = [FSTIntegrationTestCase settings];
164163
if (!settings.sslEnabled) {
165-
[GRPCCall useInsecureConnectionsForHost:settings.host];
164+
GrpcConnection::UseInsecureChannel(util::MakeString(settings.host));
166165
}
167166

168167
DatabaseId database_id(util::MakeString(projectID), DatabaseId::kDefault);
@@ -222,6 +221,9 @@ - (void)testStreamingWrite {
222221
mutations:@[ mutation ]];
223222
[_testWorkerQueue dispatchAsync:^{
224223
[_remoteStore addBatchToWritePipeline:batch];
224+
// The added batch won't be written immediately because write stream wasn't yet open --
225+
// trigger its opening.
226+
[_remoteStore fillWritePipeline];
225227
}];
226228

227229
[self awaitExpectations];

0 commit comments

Comments
 (0)