将 firebase 添加到我现有的 iOS 项目中,该项目具有 Google Drive

Adding firebase to my existing iOS project which has Google Drive

我有一个现有项目 Google Drive API。我可以通过添加以下行来使用 google 驱动器。

[ [ GIDSignIn sharedInstance ] setClientID:kClientID ];

GIDSignIn* signin = [ GIDSignIn sharedInstance ];    
signin.delegate = self;
signin.uiDelegate = self;
signin.scopes = [NSArray arrayWithObjects:kGTLRAuthScopeDrive, kGTLRAuthScopeDriveMetadataReadonly, nil];
[signin signIn];

并使用signIn:didSignInForUser内的行授权驱动服务:

self.driveService.authorizer = currentUser.authentication.fetcherAuthorizer;

有了这个,我可以毫无问题地使用我想要的所有 GTLDrive API。 现在我想将 Firebase 添加到我的项目中。添加 firebase 后,我收到了一个新的客户端 ID,我将其访问为

[ GIDSignIn sharedInstance ].clientID = [ FIRApp defaultApp ].options.clientID;

现在我必须使用 FIRApp.options.cliendID 设置上面的 clientID,否则我无法验证 firebase。

GIDAuthentication* authentication = user.authentication;
FIRAuthCredential* credential = [ FIRGoogleAuthProvider credentialWithIDToken:authentication.idToken accessToken:authentication.accessToken ];
[ [ FIRAuth auth ] signInAndRetrieveDataWithCredential:credential completion:^(FIRAuthDataResult* authResult, NSError* error)
 {
 } ];

当我使用 FirAuth 客户端 ID 时,我的 google 驱动器不工作。当我使用 GoogleDrive 客户端 ID 时,Firebase 身份验证不起作用。我知道它按预期工作,但是我怎样才能让这两种服务都适用于我的单个应用程序。

问题已解决。我没有注意到 Firebase 已经创建了另一个同名项目。现在我有相同的客户端 ID。我在 Firebase 创建的新项目中的 console.developers.google.com 中启用了 GoogleDrive API,并且 Google Drive 和 Firebase API 都获得了授权,没有任何问题。