2017-10-18 16 views
0

我想要得到的數值爲使用該代碼的用戶電話號碼:價值用戶的phoneNumber的上火力/ AUTH

let userPhoneNumber = Auth.auth().currentUser?.phoneNumber 
let messageDictionary = ["sender": userPhoneNumber, "messageBody": messageTextField.text!] 

但它一直上來的零。除了在初始驗證過程中用戶登錄時保存phoneNumber之外,我如何隨時訪問用戶phoneNumber的值?

回答

0

您必須設置用戶值才能檢索它們。但是,我不確定您是否可以像電話號碼一樣設置自定義字段,但是如果可以,就可以像這樣工作。

let phoneNumber = phoneNumberTextField.text! 

let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest() 
changeRequest?.phoneNumber = phoneNumber 
changeRequest?.commitChanges { (error) in 
    // ... 
} 

Source

或者,你可以節省用戶的電話號碼,以userDefaults,並從那裏取回它。

let defaults:UserDefaults = UserDefaults.standard 
defaults.set(phoneNumber, forKey: "phoneNumber") 

// To get phoneNumber 
let pNumber = UserDefaults.standard.value(forKey: "phoneNumber") 

最後,您可以將信息上傳到您的Firebase database

+0

我能夠在phoneNumber的保存爲userDefault,但我希望能夠訪問使用火力地堡說這種價值。使用email-auth,我可以通過以下方式訪問用戶電子郵件的值: let userEmail = Auth.auth()?。currentUser?.email let messageDictionary = [「sender」:Usermail, 「messageBody」:messageTextfield.text !] 我希望能夠使用phoneAuth訪問用戶phoneNumber的值,就像使用emailAuth獲取電子郵件值一樣容易。 FireBase的身份驗證頁面將phoneNumber的值設置爲「標識符」,我需要該標識符值。 – KarmaDeli

+0

您使用的是Auth.auth()。currentUser?.displayName?如果你不是,那麼你可以在那裏保存電話號碼。它不會真的有意義,但你可以輕鬆地檢索它。但是,我認爲,如果你希望它是,你應該存儲在數據庫中的用戶信息和檢索時,用戶跡象 – DoesData

+0

是啊,這是一個很好的解決方案,我只是phoneNumber的保存爲價值更多火力地堡Auth.auth()。currentUser?.phoneNumber目前設置爲零。謝謝。 – KarmaDeli

相關問題