Странный результат доступа к объекту javascript - PullRequest
0 голосов
/ 25 июня 2018

Мой вопрос очень короткий, я не могу понять результат этой операции.Я вызываю API аутентификации Firebase, который дает мне этот объект, если аутентификация не удалась:

  y {
  a:3
  b:null
  c:null
  f:null
  g:true
  h:false
  i:K {code: "auth/wrong-password", message: "The password is invalid or the 
  user does not have a password."}
  }

И это, если она прошла успешно:

y {a: 0, i: undefined, c: y, b: null, f: null, …}
a:2
b:null
c:null
f:null
g:false
h:false
i:{user: Q, credential: null, additionalUserInfo: Gf, operationType: "signIn"}

Итак, я предположил, чтоон дает «g: true», но это не удалось, и если он дает «g: false», он был успешным, но когда я обращаюсь к элементу g:

console.log(result.g)

Результат всегда ложен, несмотря на то, что он говорит в результатеобъект.У меня никогда не было этой проблемы, если кто-то может помочь, я буду признателен.

Вот мой код для более подробной информации:

export default class ApiResource {
  signIn(_user, _password) {
    var result = auth.signInWithEmailAndPassword(_user, _password)
    return result
  }
}
...
var result = new ApiResource().signIn(this.username, this.password)
console.log(result)
console.log(result.g)

Это результат в браузере

Auth - это объект firebase

//Firebase.js
import { initializeApp } from 'firebase';
const app = initializeApp({
// ...Initialize code here
})

export const auth = app.auth()

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Хорошо, я решил свою проблему, используя методы .then () и .catch (), потому что результирующий объект был обещанием javascript, но я все еще не понимаю, почему результат был ложным, когда объект сказал, что это правда. Возможно, когда я получил доступ к result.g, это еще не было определено или что-то еще. Хорошо, если у кого-то есть ответ на это поведение, просто дайте мне сейчас.

0 голосов
/ 25 июня 2018

Из кода, который вы пишете, "g" находится вне объекта y.

  y {
  a:3
  b:null
  c:null
  f:null
  g:true

Но для успешного выполнения:

y {}..
g: false

Вы можете проверить, является ли "g" правильным флагом дляуспешный вход в систему.

Если это так, в запросе есть два свойства "g".Возможно, вы обращаетесь не к тому

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...