gpt4 book ai didi

firebase - 无法从 createUserWithEmailAndPassword 的 firebase 响应访问 stsTokenManager

转载 作者:行者123 更新时间:2023-12-05 08:30:06 26 4
gpt4 key购买 nike

我正在使用调用 firbase.auth().createUserWithEmailAndPassword(email, password); 的 React native 注册表单我在 trycatch 中使用如下代码:

const result = await firebase
.auth()
.createUserWithEmailAndPassword(email, password);

console.log(result.user.stsTokenManager);

如果我控制台日志 result.user 我看到一个 stsTokenManager 对象,它有关于提供的 token 的信息但是如果我尝试控制台日志 result.user.stsTokenManager 我得到不明确的。如果有人知道发生这种情况的原因以及为什么我无法访问结果中的特定对象,那就太好了。

最佳答案

对于下面的请求,变量 credentialUserCredential对象。

const credential = await firebase
.auth()
.createUserWithEmailAndPassword(email, password);

UserCredential 由以下部分组成:

{
additionalUserInfo?: null | {
isNewUser: boolean;
profile: Object | null;
providerId: string;
username?: string | null
};
credential: AuthCredential | null;
operationType?: string | null;
user: User | null
}

文档:UserAuthCredential

正如您从 User 的文档中看到的那样,属性 stsTokenManager 不存在,因为它是一个内部属性。

这意味着您不应该使用它。

当您查看fireauth.AuthUser 的源代码时,该属性实际上称为stsTokenManager_,定义为here .它是使用 user.getStsTokenManager() 访问的,定义为 here .

那么,为什么控制台将其记录为stsTokenManager?这是因为调用了 fireauth.AuthUser.prototype.toJSON() 方法,它调用了 fireauth.AuthUser.prototype.toPlainObject() 方法,导出为 stsTokenManager,定义为 here .

因此您应该能够使用以下任一方式记录访问 token :

console.log(result.user.getStsTokenManager().accessToken);

console.log(result.user.toPlainObject().stsTokenManager.accessToken);

关于firebase - 无法从 createUserWithEmailAndPassword 的 firebase 响应访问 stsTokenManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66407802/

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