Мне трудно получить доступ к определенному свойству в слоистом объекте с именем result
:
result Object {
"additionalUserInfo": hg {
"isNewUser": true,
"providerId": "password",
},
"credential": null,
"operationType": "signIn",
"user": Object {
"apiKey": "some_api",
"appName": "[DEFAULT]",
"authDomain": "firebase.firebaseapp.com",
"createdAt": "1579042072524",
"displayName": null,
"email": "qp@email.com",
"emailVerified": false,
"isAnonymous": false,
"lastLoginAt": "1579042072524",
"phoneNumber": null,
"photoURL": null,
"providerData": Array [
Object {
"displayName": null,
"email": "qp@email.com",
"phoneNumber": null,
"photoURL": null,
"providerId": "password",
"uid": "qp@email.com",
},
],
"redirectEventId": null,
"stsTokenManager": Object {
"accessToken": "some_access_token",
"apiKey": "some_api_key",
"expirationTime": 1579045673373,
"refreshToken": "some_refresh_token",
},
"tenantId": null,
"uid": "some_uid",
},
}
Я хочу получить доступ к "some_access_token", но могу только go, пока result.user
, но если я сделаю result.user && result.user.stsTokenManager
или
if(result.user.stsTokenManager){
console.log(result.user.stsTokenManager.accessToken)
}
Я также попытался const accessToken = (((result || {}).user || {}).stsTokenManager || {}).accessToken
, но все еще не определено
Обновление
Вот как Я пытаюсь получить доступ к переменной, но все еще не определено.
const submitHandler = async (input) => {
const { email, password } = input && input
let result;
try {
result = await Firebase.auth().createUserWithEmailAndPassword(email, password)
} catch (err) {
switch (err.code) {
case 'auth/email-already-in-use':
console.log("message", err.message)
}
}
const token = (((result || {}).user || {}).stsTokenManager || {}).accessToken
console.log("accessToken", token)
// or
if (result.user.stsTokenManager) {
console.log(result.user.stsTokenManager.accessToken)
}
// or
console.log(result && result.user.stsTokenManager.accessToken)
}
Я даже пытался loda sh:
const accessToken = _.get(result, ['user', 'stsTokenManger', 'accessToken'])
, но все еще не определено
Нечетный часть, я могу получить доступ к result.user.email
, result.user, emailVerified
, result.user.providerData
, result.user.uid
, но я получаю undefined
в result.user.stsTokenManager
, result.user.lastLoginAt
, result.user.createdAt
, хотя когда я console.log(result)
, я могу четко убедитесь, что переменные заполнены.