使用 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 编号。
我想更新用于身份验证的用户 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 编号。