【问题标题】:Removing "First & last name" field from FirebaseUI Auth prompt on iOS从 iOS 上的 FirebaseUI 身份验证提示中删除“名字和姓氏”字段
【发布时间】:2020-08-26 15:00:19
【问题描述】:

我已在我的 iOS 应用程序中构建了 FirebaseUI Auth,但我想从电子邮件身份验证提示中删除 Firstname Lastname 字段。这个库节省了很多时间,但我的应用不需要用户提供这些信息。

我查看了documentation,并在 Stack Overflow 上找到了一些关于此库的 Web 版本的 similarposts,但我无法修改在iOS 库。其他帖子中的最佳答案表明可以在该库中修改 requireDisplayName 属性。

对于 iOS 库,我尝试创建电子邮件授权提供程序的实例并更改它的 requireDisplayName 属性,但出现错误: “无法分配给属性:'requireDisplayName' 是一个只能获取的属性”。

我是不是走错了路?或者这个功能目前似乎不存在?解决此问题的合理方法是什么?分叉并删除使属性成为只读的任何内容?

  func presentAuthController() {
    let authUI = FUIAuth.defaultAuthUI()
    // You need to adopt a FUIAuthDelegate protocol to receive callback
    authUI?.delegate = self
    
    let emailAuth = FUIEmailAuth()
    emailAuth.requireDisplayName = false
    
    if #available(iOS 13.0, *) {
      let providers: [FUIAuthProvider] = [
        emailAuth,
        FUIGoogleAuth(),
        FUIFacebookAuth(),
        FUIOAuth.appleAuthProvider()
      ]
      authUI?.providers = providers
    } else {
      let providers: [FUIAuthProvider] = [
        emailAuth,
        FUIGoogleAuth(),
        FUIFacebookAuth()
      ]
      authUI?.providers = providers
    }
    let fwefwef = FUIEmailAuth()
    // FIXME: Privacy policy
//    authUI?.privacyPolicyURL =
//    authUI?.tosurl
    
    let authViewController = authUI!.authViewController()
    
    
    self.present(authViewController, animated: true, completion: nil)
  }

【问题讨论】:

    标签: swift firebase firebaseui


    【解决方案1】:

    原来我只需要在初始化 emailAuth 对象时定义 requireDisplayName 属性。

    func presentAuthController() {
        let authUI = FUIAuth.defaultAuthUI()
        // You need to adopt a FUIAuthDelegate protocol to receive callback
        authUI?.delegate = self
        
        let settings = ActionCodeSettings()
    
        let emailAuth = FUIEmailAuth(
          authAuthUI: authUI!,
          signInMethod: EmailPasswordAuthSignInMethod,
          forceSameDevice: false,
          allowNewEmailAccounts: true,
          requireDisplayName: false,
          actionCodeSetting: settings
        )
        
        if #available(iOS 13.0, *) {
          let providers: [FUIAuthProvider] = [
            emailAuth,
            FUIGoogleAuth(),
            FUIFacebookAuth(),
            FUIOAuth.appleAuthProvider()
          ]
          authUI?.providers = providers
        } else {
          let providers: [FUIAuthProvider] = [
            emailAuth,
            FUIGoogleAuth(),
            FUIFacebookAuth()
          ]
          authUI?.providers = providers
        }
        
        let authViewController = authUI!.authViewController()
        
        self.present(authViewController, animated: true, completion: nil)
      }
    

    【讨论】:

      猜你喜欢
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 2021-09-08
      • 2014-04-13
      相关资源
      最近更新 更多