gpt4 book ai didi

firebase-admin - Firebase 管理员 - 创建自定义 token : There is no user record corresponding to the provided identifier

转载 作者:行者123 更新时间:2023-12-04 03:03:41 25 4
gpt4 key购买 nike

我正在使用 firebase admin 因为我想在不同的服务器上验证我的用户。我有以下代码,但出现错误

{ code: 'auth/user-not-found',
message: 'There is no user record corresponding to the provided identifier.' } }

文档
https://firebase.google.com/docs/auth/admin/create-custom-tokens
    var uid = user_dict['uid'];
admin.auth().createCustomToken(uid)
.then(function (customToken) {
admin.auth().updateUser(uid, {
//email: user_dict['email'],
emailVerified: true,
displayName: user_dict['displayName'],
photoURL: user_dict['photoURL']
})
.then(function(userRecord) {

response = {
token:customToken
};
res.send(response);

})
.catch(function(error) {
console.log("Error updating user:", error);
res.statusCode = 401;
res.send("Error al actualizar usuario")
});


})
.catch(function (error) {
console.log("Error creating custom token:", error);
res.statusCode = 401;
res.send("El usuario no existe")
});

此代码的奇怪部分适用于 1 个用户,但不适用于其余用户。为什么?

更新

我将代码更改为:
var uid = user_dict['uid'];

admin.auth().createCustomToken(uid)
.then(函数(customToken){
    admin.auth().getUser(uid)
.then(function(userRecord) {
// See the UserRecord reference doc for the contents of userRecord.
console.log("Successfully fetched user data:", userRecord.toJSON());
admin.auth().updateUser(uid, {
email: user_dict['email'],
emailVerified: true,
displayName: user_dict['displayName'],
photoURL: user_dict['photoURL']
})
.then(function(userRecord) {

response = {
token:customToken
};
res.send(response);

})
.catch(function(error) {
console.log("Error updating user:", error);
res.statusCode = 401;
res.send("Error al actualizar usuario")
});
})
.catch(function(error) {
console.log("Error fetching user data:", error);

admin.auth().createUser({
uid:uid,
email: user_dict['email'],
emailVerified: true,
displayName: user_dict['displayName'],
photoURL: user_dict['photoURL'],
password:req.body['password']
})
.then(function(userRecord) {
// See the UserRecord reference doc for the contents of userRecord.
console.log("Successfully created new user:", userRecord.uid);
response = {
token:customToken
};
res.send(response);
})
.catch(function(error) {
console.log("Error creating new user:", error);
res.statusCode = 401;
res.send("Error al crear el usuario")
});

});

})
.catch(function (error) {
console.log("Error creating custom token:", error);
res.statusCode = 401;
res.send("El usuario no existe")
});

您可以在以下屏幕截图中看到 carlos@mail 是使用函数 createUser() 创建的,而其他电子邮件 ricardo@mail 不是。他们没有相同的提供商,为什么会有这样的差异?

enter image description here

最佳答案

createCustomToken()接受任意用户 ID 字符串。但是updateUser()才不是。传递给 updateUser() 的 UID必须已存在于 Firebase 项目中。您需要调用createUser()首先在 Firebase 中创建这些用户帐户。

关于firebase-admin - Firebase 管理员 - 创建自定义 token : There is no user record corresponding to the provided identifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46685934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com