2017-02-15 5 views
0

Я использую firebase/AngularJS, но, на мой взгляд, это простая проблема структуры объектов JavaScript.Не удается получить доступ (только) к некоторым свойствам объекта (JavaScript)

Подписавшись на Facebook вручную с помощью firebase, я не могу получить доступ к 4 конкретным свойствам, находящимся внутри объекта «result», из процесса signInWithCredential.

(консоль) Регистрация объекта результата, в котором находятся 4 переменные, я просто не могу получить прямой доступ к ним.

Однако я могу получить доступ ко всем другим свойствам объекта, что превращает это в действительно странную ошибку.

Вот код:

firebase.auth().signInWithCredential(credential).then(function(result){ 

    // $localStorage.firebaseToken = result.providerData.stsTokenManager.accessToken; 


     var chatUserData = {}; 
     var updates = {}; 


     console.log("result str obj : " + JSON.stringify(result)); // defined 

    console.log("result str > uid is " + JSON.stringify(result.uid)); // defined 
     console.log("result str > displayName is " + JSON.stringify(result.displayName)); // defined 
     console.log("result str > photoURL is " + JSON.stringify(result.photoURL)); // defined 
     console.log("result str > email is " + JSON.stringify(result.email)); // defined 
     console.log("result str > emailVerified is " + JSON.stringify(result.emailVerified)); // defined 
     console.log("result str > isAnonymous is " + JSON.stringify(result.isAnonymous)); // defined 

     console.log("result str Provider Data " + JSON.stringify(result.providerData)); // array of objects - defined 

     console.log("result str > apiKey is " + JSON.stringify(result.apiKey)); // gets undefined 
     console.log("result str > appName is " + JSON.stringify(result.appName)); // gets undefined 
     console.log("result str > authDomain is " + JSON.stringify(result.authDomain)); // gets undefined 
     console.log("result str > stsTokenManager is " + JSON.stringify(result.stsTokenManager)); // gets undefined  


     chatUserData.username = result.displayName; 
     chatUserData.email = $localStorage.fb_data.data.email; 
     chatUserData.id = result.uid; 

     updates['/users/' + result.uid + "/"] = chatUserData; 
     firebase.database().ref().update(updates); 

    }).catch(function(error) { 
     console.log("Error! " + JSON.stringify(error)); 
    }); 

А вот объектный код из журнала консоли:

result_object

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

(профиль facebook У меня есть подделка)

Надеется, что вы, ребята, можете помочь, Приветствию.

+0

Зачем вам нужен JSON.stringify? он имеет смысл с объектами, но со значениями просто делает console.log (result.displayName) –

+0

Поскольку некоторые из этих значений являются объектами, а их регистрация будет отображаться в [Объекте объекта]. В любом случае, я попробовал это без JSON.stringify, и результаты остались прежними. : / – Pokfin

ответ

1

Я исправил это, оказывается, это своего рода объект, управляемый firebase, способ правильно прокручивать его с помощью углового. И даже этот путь не правильный.

Я должен был использовать user.getToken(), и я нашел это прямо в документации.

Firebase User Get Token

Смежные вопросы