在node.js中如何从返回的facebook providerData json数组中提取uid?

时间:2017-11-12 18:44:42

标签: javascript json

我让我的用户使用facebook登录,并将其存储在firebase身份验证中。在index.js中,我有一个onCreate函数,它在firestore中存储了一些与facebook相关的数据。

当我登录云功能时,控制台event.data.providerData我得到了这个:

[ { displayName: 'xxxx xxxxx',
    photoURL: 'https://scontent.xx.fbcdn.net/v/t1.0-1/p100x100/xxxxxxxxx_439xxx336xxxxxx.jpg?oh=bcxxxxxxxxxxx431ce&oe=xxxx4xxx3',
    providerId: 'facebook.com',
    uid: 'xxxxx725xxxxxx80' } ]

在我的index.js文件中,我将其设置为

const providerData = event.data.providerData;

这总是让我困惑,我已经读了很多。

这是我的问题:

  1. 这是一个javascript对象吗?还是一个JSON对象?还是一个JSON数组?
  2. 这是否需要解析?例如。 JSON.parse(event.data.providerData)? JSON.parse实际上在做什么?
  3. 要访问我尝试过的uid:

    providerData[3]
    providerData.uid
    providerData["uid"]
    providerData['uid']
    JSON.parse(providerData) - and then all the above again
    
    var obj = JSON.parse(providerData);
    console.log( obj.uid );
    

    我知道有很多帖子在那里:类似的主题,我想我已经阅读了很多。

    感谢。

1 个答案:

答案 0 :(得分:1)

这是一个包含索引0的JSON对象的数组。

javascript解释器自动将Valid JSON解析为Javascript对象。

知道了,您现在可以直接访问对象的属性,如下所示:

providerData[0].displayName
providerData[0].photoURL
providerData[0].providerId
providerData[0].uid // <-- Your use case