使用Firebase在ios中推送通知

时间:2019-09-14 12:31:52

标签: ios swift firebase firebase-authentication

如何在项目中使用推送通知功能?我没有开发者帐户,我尝试过此代码

@IBAction func PhoneSignIn(_ sender: Any) {
    let alert = UIAlertController(title: "Phone number", message: "Is this your phone number? \n \(PhoneOu.text!)", preferredStyle: .alert)
    let action = UIAlertAction(title: "Yes", style: .default) { (UIAlertAction) in
        PhoneAuthProvider.provider().verifyPhoneNumber(self.PhoneOu.text!, uiDelegate: nil) { (verificationID, error) in
            if error != nil {
                print("eror: \(String(describing: error?.localizedDescription))")
            } else {
                let defaults = UserDefaults.standard
                defaults.set(verificationID, forKey: "authVID")
                self.performSegue(withIdentifier: "code", sender: Any?.self)
            }
        }
    }
    let cancel = UIAlertAction(title: "No", style: .cancel, handler: nil)
    alert.addAction(action)
    alert.addAction(cancel)
    self.present(alert, animated: true, completion: nil)
}

1 个答案:

答案 0 :(得分:0)

  

当您调用verifyPhoneNumber:UIDelegate:completion:时, Firebase向您的应用发送静默推送通知,或向用户发出reCAPTCHA挑战。在您的应用收到通知或用户完成reCAPTCHA挑战后,Firebase将包含验证码的SMS消息发送到指定的电话号码,并将验证ID传递给您的完成功能。您将需要验证码和验证ID来登录用户。

如果您没有开发者帐户,则当前无法使用推送通知,最好使用reCAPTCHA

设置reCAPTCHA验证:

要使Firebase SDK能够使用reCAPTCHA验证,

向Xcode项目添加自定义URL方案:

a。打开项目配置:在左树视图中双击项目名称。从“目标”部分中选择您的应用,然后选择“信息”标签,然后展开 URL类型部分。

b。单击+按钮,然后为您的反向客户端ID添加URL方案。要找到该值,请打开[![GoogleService-Info.plist][1]][1]配置文件,然后寻找REVERSED_CLIENT_ID键。复制该键的值,然后将其粘贴到配置页上的“ URL方案”框中。将其他字段留空。 完成后,您的配置应类似于以下内容(但具有特定于应用程序的值):

img

  1. 可选:如果要自定义应用向用户显示SFSafariViewController时呈现reCAPTCHA或UIWebView的方式,请创建一个符合FIRAuthUIDelegate协议,并将其传递给verifyPhoneNumber:UIDelegate:completion:

了解更多:

Authenticate with Firebase on iOS using a Phone Number