使用未解析的标识符'PhoneAuthProvider'

时间:2017-06-30 09:26:57

标签: ios swift firebase cocoapods firebase-authentication

我正在尝试使用firebase验证用户电话号码的窗口,遗憾的是我有严重的问题,在firebase库中找不到类PhoneAuthProvider!但在document他们提到它存在

POD:

  pod 'Alamofire', '~> 4.4'
  pod 'DropDown'
  pod 'AMTooltip'
  pod 'Firebase'
  pod 'Firebase/Core'
  pod 'Firebase/Crash'
  pod 'Firebase/RemoteConfig'
  pod 'Firebase/Auth'
  pod 'FacebookCore'
  pod 'FacebookLogin'
  pod 'FacebookShare'
  pod 'TwitterKit'
  pod 'GoogleSignIn'
  pod 'Google/SignIn'

这里是viewcontroller

import Firebase
import FirebaseAuth

    //.....

            PhoneAuthProvider.provider().verifyPhoneNumber("+96170023344") { (verificationID, error) in
                if let error = error {
                    self.showMessagePrompt(error.localizedDescription)
                    return
                }
                // Sign in using the verificationID and the code sent to the user
                // ...
            }

有什么想法吗?

3 个答案:

答案 0 :(得分:5)

这是参考,
如何在iOS中添加Firebase:Add Firebase to your iOS Project

我建议您首先尝试使用github中提供的示例代码:github.com/firebase/firebase-ios-sdk并检查它是否适用于您的系统。

  

注意:   
- 确保您的pod源中存在"workbench.colorCustomizations": { "editorWhitespace.foreground": "#93A1A130" // stand as #RRGGBBAA } 。   FIRPhoneAuthProvider.h在swift中为FIRPhoneAuthProvider.h。   
- 同时确保您已安装所有必需的吊舱。   
- 更新所有Firebase pod(或全部删除并重新安装)

使用上面的代码在我的系统中正常工作。 这是带有PhoneAuthProvider和podfile

的快照

enter image description here

请完成每个步骤,并确定您未遵循的步骤。它应该可以解决你的问题。


使用CocoaPods集成

如果您没有Podfile,请创建一个:

FIRPhoneAuthProvider.h

添加要安装的窗格。您可以在Podfile中包含Pod,如下所示:

$ cd your-project directory
$ pod init

安装pod并打开.xcworkspace文件以在Xcode中查看项目。

pod 'Firebase/Core'
pod 'Firebase/Auth'

Firebase console下载$ pod install $ open your-project.xcworkspace 个文件并将其包含在您的应用中。



没有CocoaPods整合

如果您不想使用Cocoapods,您仍然可以通过直接导入框架来利用Firebase SDK。

  • 下载framework SDK zip(这是一个~100MB的文件,可能需要一些时间)。
  • 解压缩并查看要包含在项目中的框架的自述文件。
  • 在目标的构建设置中添加其他链接器设置中的ObjC linker flag

-

在您的应用中初始化Firebase
在您的UIApplicationDelegate子类中导入Firebase模块:

GoogleService-Info.plist

配置FIRApp共享实例,通常在您的应用程序import Firebase import FirebaseAuth

application:didFinishLaunchingWithOptions: method:

答案 1 :(得分:3)

我发现这可能有助于其他人的解决方案,

我需要设置firebase 4.0+的版本,奇怪的是我已经更新了pod的回购但我不知道为什么它没有采用4+版本,无论如何以下是我的新POD

  pod 'Firebase', '~> 4.0.0'
  pod 'Firebase/Auth', '~> 4.0.0'
  pod 'Firebase/Core', '~> 4.0.0'
  pod 'Firebase/Crash', '~> 4.0.0'
  pod 'Alamofire', '~> 4.4'
  pod 'DropDown'
  pod 'AMTooltip'
  pod 'FacebookCore'
  pod 'FacebookLogin'
  pod 'FacebookShare'
  pod 'TwitterKit'
  pod 'Google/SignIn'

答案 2 :(得分:0)

你的pos安装的Firebase版本是什么?它需要是4。  你可以运行

clipplane.js