使用 firebase admin sdk 更新用户电话号码无法正常工作

updating user phoneNumber using firebase admin sdk is not working somehow

我想更新用于身份验证的用户 phone 号码,我正在使用 firebase admin sdk 更新 phone 用户号码,但它似乎对我不起作用,我正在不明白我做错了什么-

根据 docs 管理用户,我在云函数中使用以下代码-

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 没有正在更新。

使用 Postman Snap 进行测试- 输出:

如果需要有关此查询的更多信息,请告诉我,
如果有任何其他更新 phoneNumber 的方法,那么 link 到文档会很有帮助

确保在通过 Firebase Admin SDK 更新用户的 phone 号码后调用 firebase.auth().currentUser.reload()。 您可能还想调用 firebase.auth().currentUser.getIdToken(true) 以强制令牌刷新也包含更新 phone 编号。