如何更新GoogleSign-In以使用新的Firebase控制台和API?

所以,我昨天一切正常。 然后,我login到我的Firebase控制台,并有一个横幅提示我尝试新的Firebase控制台。 “确定!听起来不错”我想。

八个小时后,我无法让Google Sign-In工作。 这是我的GIDSignInDelegate方法,它正确的引发了一切。

func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) { if (error == nil) { let authentication = user.authentication let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken, accessToken: authentication.accessToken) FIRAuth.auth()?.signInWithCredential(credential, completion: nil) } else { // Don't assert this error it is commonly returned as nil print("\(error.localizedDescription)") } } 

问题似乎是这没有创build一个事件

  FIRAuth.auth()!.addAuthStateDidChangeListener 

这是在我的应用程序委托。

当使用Facebook APIlogin时,它会激发身份validation状态更改侦听器。

我也尝试了一个完成块,用户是一个GIDGoogleUser而不是一个FIRUser ,这似乎有点奇怪,但我没有证据,这将是一个问题。 另外,错误是零。 所以它看起来像signInWithCredential正在工作,但身份validation状态更改侦听器不会触发。

我唯一能想到的是系统的Googlelogin部分存在问题,因为必须从Firebase控制台下载的新的GoogleService-Info.plist与我以前的应用程序ID不同GoogleService-Info.plist 。 我试图用我的旧的应用程序IDreplace,这根本不工作。 然后,我尝试删除任何旧的应用程序id的引用,假设新的自动集成谷歌login。 仍然没有运气。

任何人有成功更新?

什么解决这个问题是创build一个新的Firebase项目。

转到https://console.firebase.google.com并selectCREATE NEW PROJECT。 我尝试了所有我能想到的旧(升级)项目,而我却无法完成这个任务。 在旧项目中添加新的iOS应用程序还不够。

我知道这是一个生产应用程序不好的select,但因为我还处于开发阶段对我来说不是一个大问题。

我添加了“导入FirebaseAuth”,它的工作! 我知道Firebase文档没有说明添加这个,但是我决定尝试一下。

您需要添加“Web SDKconfiguration”。 即使您只有iOS应用程序,您仍然需要input它!

  1. 转到新的Firebase控制台中的“Auth”标签。
  2. 点击“login提供商”下的“Google”
  3. 将鼠标hover在“Web SDKconfiguration(可选)”上,将popup一个对话框,提示“从现有的Google项目中重新使用Web客户端ID。您可以通过select项目和OAuth 2.0条目来查找现有项目的Web客户端ID Google API控制台“。
  4. 点击链接说“谷歌API控制台”。
  5. 在“OAuth 2.0客户端ID”部分查看。 您需要点击“Web客户端(由Google服务自动创build”)链接。
  6. 将“客户端ID”和“客户端密钥”复制/粘贴到您的Firebase控制台的“Web SDKconfiguration(可选)”部分

有趣的事情,即使你可能只有iOS应用程序,你需要做到这一点。

重新运行你的xCode项目。