我在我的应用程序中使用Firebase身份验证(电子邮件,无密码),并尝试遵循these directions。
其中有几个特别令人困惑的部分:
actionCodeSettings.url = URL(string: "https://www.example.com")
-此URL应该是什么?对于iOS应用程序,为什么我希望用户点击其iPhone上的链接并启动该应用程序,这为何如此?the App Store ID and the Apple Developer Team ID also need to be specified
-如果我的应用程序不在应用商店中,而是仅通过TestFlight分发,该怎么办?You will also need to configure your email action handler domain as an Associated Domain in your application capabilities. By default, the email action handler is hosted on a domain like the following example: APP_ID.firebaseapp.com
说:APP_ID是什么,它与上一步中的Apple ID相同吗?什么是电子邮件操作处理程序域,如何添加一个?application:openURL:options:
方法添加为seen in the example,但从未真正调用它。答案 0 :(得分:0)
actionCodeSettings.url
这必须是控制台>开发>身份验证>登录方法>授权域中列出的域。否则,您会收到未经授权的域错误。
这实际上是在确定用户点击桌面上的链接时发生的情况。例如。您可能需要将他们带到404页面,或一个解释如何在其iPhone上打开链接的页面。
如果没有其他可使用的内容,则可以随时获取该部分中列出的foo-xxxx.firebaseapp.com或foo-xxxx.web.app网址,这将显示“找不到网站”页面。 / p>
这将起作用!您可以从iTunes Connect网站获取您的App ID。
不确定该步骤到底是什么。 APP_ID
最有可能是指Firebase控制台中在步骤1中可以找到的foo-xxxx
值。
但是,您可能不想使用建议的APP_ID.firebaseapp.com
值。相反,您要遵循dynamic links instructions,并在Xcode中项目的设置下,将看到“功能”>“关联的域”选项卡。您将需要在其中添加applinks:your_dynamic_links_domain
,看起来像applinks:foo.page.link
。
application:openURL:options:
没有被呼叫启动您的应用https://foo.page.link openURL方法的通用链接(例如will never call)。相反,您需要实现continue user activity method,正如dynamic links instructions
中所述如果正确实现所有内容,它将看起来像这样:
application(:,continue:,restorationHandler:)
方法,此时您应该调用Auth.auth().isSignIn(withEmailLink: link)
,然后最终调用Auth.auth().signIn(withEmail: email, link: link)
。尝试向自己发送电子邮件,然后点击登录链接。返回电子邮件,然后再次点击它,由于每个代码只能使用一次,因此它不起作用。
您应该能够找出通过同步方法Auth.auth().currentUser?.email
登录的用户。