我试图在我的应用中添加取消提供商功能。我想添加一个按钮,将用户的Facebook帐户从其Firebase用户帐户中取消关联。 Firebase文档说使用providerData数组,但我不知道如何从中提取Facebook提供者ID。如果我只使用let providerID = self.currentUser.providerID
,它只是默认为数组中的第一个提供者,而不管类型是什么(Facebook,Twitter,Firebase等)。从Firebase获取提供商数据用户
如何从providerData中提取Facebook提供者ID?这是我试图得到它,但它的误差(“不能与索引类型为String的下标类型的值[字符串]”):
guard let providerData = self.currentUser?.providerData else {return}
var providerArray: [String] = []
for provider in providerData{
providerArray.append(provider as! String)
}
var providerID: String = providerArray["Facebook"]
FIRAuth.auth()?.currentUser?.unlink(fromProvider: providerID) { (user, error) in
编辑:
使用
固定FIRAuth.auth()?.currentUser?.unlink(fromProvider: "facebook.com") { (user, error) in
感谢您的回复!我实际上是通过传递“facebook.com”作为providerID来解决这个问题的。我只显示取消链接按钮,如果Facebook身份验证令牌存在 – winston
这很好。我只是可能不会使用这样的字符串,考虑如果他们在API中更改该值,那么您的代码将无法工作:/只是一个建议! – jnewkirk
这是一个好点!我如何去比较两者? – winston