我想更新用于身份验证的用户电话号码,我正在使用firebase admin sdk更新用户的电话号码,但它似乎对我不起作用,而且我也没有做错什么-
根据用于管理用户的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没有更新。
请告诉我该查询是否需要其他信息,
如果还有其他方法可以更新phoneNumber,那么除了文档链接之外,
答案 0 :(得分:0)
通过Firebase Admin SDK更新用户的电话号码后,请确保致电firebase.auth().currentUser.reload()
。
您可能还想致电firebase.auth().currentUser.getIdToken(true)
来强制令牌刷新也包含更新的电话号码。