2017-10-18 23 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

相关问题