2017-10-18 6 views
0

J'essaie obtenir la valeur pour un utilisateur en utilisant ce code PHONENUMBER:Rapport qualité phoneNumber de l'utilisateur sur firebase/auth

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

Mais il revient sans cesse comme nul. En dehors de l'enregistrement du numéro de téléphone lors de la connexion de l'utilisateur pendant le processus de vérification initiale, comment puis-je accéder à la valeur du numéro de téléphone de l'utilisateur à tout moment?

Répondre

0

Vous devez définir les valeurs utilisateur avant de pouvoir les récupérer. Cependant, je ne suis pas sûr si vous pouvez définir un champ personnalisé comme un numéro de téléphone, mais si vous le pouvez, cela fonctionnerait comme ça.

let phoneNumber = phoneNumberTextField.text! 

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

Source

Sinon, vous pouvez enregistrer le téléphone utilisateur numéro à userDefaults et le récupérer à partir de là.

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

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

Enfin, vous pouvez télécharger les informations à votre Firebase database

+0

Je suis en mesure de sauver le phoneNumber comme userDefault, mais je veux être en mesure d'accéder à cette valeur à l'aide parler Firebase. Avec email-auth je peux accéder à la valeur pour l'email d'un utilisateur avec ceci: laissez userEmail = Auth.auth()?. CurrentUser? .email laissez messageDictionary = ["expéditeur": Usermail, "messageBody": messageTextfield.text !] J'espérais que je serais en mesure d'accéder à la valeur de userNumber phoneAuth en utilisant PhoneAuth tout aussi facilement que j'obtiendrais la valeur email avec emailAuth. La page d'authentification de FireBase attribue à TelephoneNumber la valeur "Identifier". J'ai besoin de cette valeur d'identifiant. – KarmaDeli

+0

Utilisez-vous Auth.auth(). CurrentUser? .displayName? Si ce n'est pas le cas, vous pouvez enregistrer le numéro de téléphone ici. Cela n'aura pas vraiment de sens, mais vous pourriez facilement le récupérer. Cependant, je pense que si vous voulez qu'il soit plus Firebase que vous devriez stocker les informations des utilisateurs dans la base de données et les récupérer quand l'utilisateur se connecte. – DoesData

+0

Ouais, c'est une bonne solution, je vais juste enregistrer le numéro de téléphone comme valeur pour Auth.auth(). CurrentUser? .phoneNumber qui est actuellement défini sur zéro. Merci. – KarmaDeli