обновление пользователя phoneNumber с помощью Firebase Admin SDK не работает как-то - PullRequest
0 голосов
/ 23 сентября 2018

Я хочу обновить номер телефона пользователя, используемый для аутентификации, я использую Firebase Admin SDK, чтобы обновить номер телефона пользователя, но, похоже, это не работает для меня, и я не понимаю, что я делаю неправильно-

Согласно документам для управления пользователями, я использую приведенный ниже код в облачной функции -

import * as functions from "firebase-functions";
import express = require("express");
import bodyParser = require("body-parser");
import admin = require("firebase-admin");
const serviceAccount = require("./ServiceAccountKey.json");


admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://projectname.firebaseio.com"
});

const db = admin.firestore();


const settings = { timestampsInSnapshots: true };
db.settings(settings);

const app = express();
app.use(bodyParser.json());
app.use(
  bodyParser.urlencoded({
    extended: false
  })
);
app.use(function(req, res, next) {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  res.setHeader(
    "Access-Control-Allow-Methods",
    "POST, GET, PATCH, DELETE, OPTIONS"
  );
  next();
});

/* Change user Mobile Number Request */
app.post("/mchangereq", (req, res) => {

  return admin
    .auth()
    .updateUser(req.body.uid, {
      phoneNumber: req.body.phoneNumber,
      emailVerified:Boolean(req.body.emailVerified)

    })
    .then((s) => {

      res.status(201).json({ message: "mobile number status", data:{...s} });
    }).catch(e => res.status(400).json({ err: e }));

});

exports.apphost = functions.https.onRequest(app);

код работает, но он не обновляет phoneNumber, япопытался обновить другие значения, такие как emailVerified, которые были успешно обновлены, но phoneNumber не обновляется.

Тестирование с использованием Snapman Snap-Output: Postman POST request result

Пожалуйста, дайтея знаю, нужна ли какая-либо дополнительная информация по этому запросу,
если есть какой-либо другой способ обновления phoneNumber, будет полезна ссылка на документ

1 Ответ

0 голосов
/ 24 сентября 2018

Убедитесь, что вы звоните firebase.auth().currentUser.reload() после обновления номера телефона пользователя с помощью Firebase Admin SDK.Вы также можете позвонить по номеру firebase.auth().currentUser.getIdToken(true), чтобы принудительно обновить токен, чтобы он также содержал номер телефона для обновления.

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