将ActionCodesSettings与Auth.sendEmailVerification一起使用时,Firebase无法识别关联的域

时间:2018-08-18 20:08:52

标签: ios swift firebase firebase-authentication firebase-dynamic-links

在iOS / Swift上,使用sendEmailVerification(with:completion:)时出现意外域错误。我已经使用动态链接手动设置了相关域。

let actionCodeSettings = ActionCodeSettings()
actionCodeSettings.handleCodeInApp = false
email = "user@domain.com"
actionCodeSettings.url = "https://example.page.link/verify?email=\(email)"

user.sendEmailVerification( with: actionCodeSettings )
{
    ( error ) in
    ...
}                    

错误是:

  

Error Domain = FIRAuthErrorDomain代码= 17038“项目未将其列入白名单” UserInfo = {NSLocalizedDescription =项目未将其列入白名单,error_name = ERROR_UNAUTHORIZED_DOMAIN}),可选(https://example.page.link/verify?email=user@domain.com

但是,当我使用codesign -d --entitlements查看二进制文件时,将列出域。

<dict>
    <key>application-identifier</key>
    <string>MYTEAMID.com.devdomain.example</string>
    <key>aps-environment</key>
    <string>development</string>
    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>applinks:example.page.link</string>
    </array>
    <key>com.apple.developer.team-identifier</key>
    <string>MYTEAMID</string>
    <key>get-task-allow</key>
    <true/>
</dict>

此外,example.page.link/apple-app-site-association显示正确的信息。

是否需要以其他方式告诉Firebase该域已列入白名单?怎么样?

谢谢您的建议!

1 个答案:

答案 0 :(得分:1)

实施中存在多个问题。

  1. actionCodeSettings.url应该是深层链接,而不是FDL链接example.page.link
  2. 您通过的深层链接域必须在Firebase控制台的授权域列表中列入白名单(这是导致未授权域错误的主要原因)。
  3. 当前,Firebase Auth不允许自定义动态链接example.page.link。它将始终选择第一个可用的动态链接。