Получить номер телефона пользователя в облачных функциях Firebase - PullRequest
0 голосов
/ 21 октября 2018

Я написал https.onCall firebase cloud function как

exports.sampleFunction=functions.https.onCall((data,context)=>{
console.log(context.auth.token.phoneNumber+" ***** "+context.auth.token.email+" ***** "+context.auth.token.name);
  return userTransaction.sampleFunction(data,context).then(function(message){
    console.log(message);
  })
});

Я сохраняю phone number пользователя и могу получить номер телефона у клиента, используя

FirebaseAuth auth=FirebaseAuth.getInstance();
        FirebaseUser user=auth.getCurrentUser();
        user.getPhoneNumber();

Когда явызывая эту функцию, я вижу, что email и name печатаются в firebase cloud functions logs, но phoneNumber не определено.Как получить user phone number через context в firebase cloud functions?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Так намного проще:

exports.myFunction = functions.https.onCall((data, context) => {
    const phone = context.auth.token.phone_number;
})
0 голосов
/ 21 октября 2018

Должно работать следующее, используя admin.auth().getUser(uid):

const functions = require('firebase-functions');
const admin = require('firebase-admin');
....

exports.sampleFunction = functions.https.onCall((data,context) => {

  return admin.auth().getUser(context.auth.uid)
    .then(userRecord => {
      const phoneNumber = userRecord.phoneNumber;
      console.log(phoneNumber+" ***** "+context.auth.token.email+"      ***** "+context.auth.token.name);   
      return userTransaction.sampleFunction(data,context)    //Not sure what this is doing, I just chained it with the previous and next then(s). Modify as necessary....
    })
    .then(message => {
      console.log(message);
      return { message: message };
    })

});

См. Соответствующие документы здесь и здесь .Обратите внимание, что getUser() возвращает обещание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...