如果您在Firebase身份验证中尝试获取已注册用户的元数据时遇到空值,可能是由于以下原因:
onAuthStateChanged
监听器来检查用户是否登录。firebase.auth().onAuthStateChanged(user => {
if (user) {
// 用户已登录,获取元数据
user.getIdTokenResult(true).then(idTokenResult => {
console.log(idTokenResult.claims); // 这里可以获取到用户的元数据
}).catch(error => {
console.error('Error getting ID token result:', error);
});
} else {
// 用户未登录
console.log('No user is signed in.');
}
});
const admin = require('firebase-admin');
admin.initializeApp();
const uid = '用户的UID';
const additionalClaims = {
premiumAccount: true,
// 其他自定义声明
};
admin.auth().setCustomUserClaims(uid, additionalClaims)
.then(() => {
console.log('Custom claims updated successfully.');
})
.catch((error) => {
console.error('Error updating custom claims:', error);
});
getIdToken(true)
来强制刷新令牌。user.getIdToken(true).then(idToken => {
console.log('ID token:', idToken);
}).catch(error => {
console.error('Error refreshing ID token:', error);
});
领取专属 10元无门槛券
手把手带您无忧上云