我試圖在我的應用中添加取消提供商功能。我想添加一個按鈕,將用戶的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