【发布时间】:2021-02-21 00:51:27
【问题描述】:
这就是我正在尝试做的事情,我正在尝试获取用户的用户名。我有用户的电子邮件,所以我试图搜索文档以找到该电子邮件所在的文档,然后从中获取用户名。
代码:
useEffect(() => {
auth().onAuthStateChanged((user) => {
if (user) {
// User logged in already or has just logged in.
updateUser(user.email)
} else {
// User not logged in or has just logged out.
}
});
//get the username here
firestore().collection('users').where("email", "==", userCurrent).get().then((doc) => {
console.log(doc)
}).catch((error) => { console.log(error) })
})
当我尝试执行 doc.data() 时,我得到 doc.data 不是函数。当我尝试删除它并调用 doc 查看打印出的内容时,我得到了这个海量数据转储:
vc {
"Bf": Ht {
"Qt": $t {
"data": Nt {
"i": [Function i],
"root": _class {
"size": 0,
},
},
"i": [Function i],
},
"Ut": Gt {
"Mt": Nt {
"i": [Function i],
"root": _class {
"size": 0,
},
},
"Ot": Nt {
"i": [Function anonymous],
"root": _class {
"size": 0,
},
},
"i": [Function anonymous],
},
"Wt": true,
"docChanges": Array [],
"docs": Gt {
"Mt": Nt {
"i": [Function i],
"root": _class {
"size": 0,
},
},
"Ot": Nt {
"i": [Function anonymous],
"root": _class {
"size": 0,
},
},
"i": [Function anonymous],
},
"fromCache": false,
"jt": false,
"query": zn {
"an": Array [
ps {
"dir": "asc",
"field": $ {
"offset": 0,
"segments": Array [
"__name__",
],
"t": 1,
},
},
],
"cn": At {
"Z": "users|f:email==|ob:__name__asc",
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
"email",
],
"t": 1,
},
"op": "==",
"value": Object {
"stringValue": "",
},
},
],
"limit": null,
"orderBy": Array [
ps {
"dir": "asc",
"field": $ {
"offset": 0,
"segments": Array [
"__name__",
],
"t": 1,
},
},
],
"path": F {
"offset": 0,
"segments": Array [
"users",
],
"t": 1,
},
"startAt": null,
},
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
"email",
],
"t": 1,
},
"op": "==",
"value": Object {
"stringValue": "",
},
},
],
"limit": null,
"on": "F",
"path": F {
"offset": 0,
"segments": Array [
"users",
],
"t": 1,
},
"rn": Array [],
"startAt": null,
},
},
"Lf": zn {
"an": Array [
ps {
"dir": "asc",
"field": $ {
"offset": 0,
"segments": Array [
"__name__",
],
"t": 1,
},
},
],
"cn": At {
"Z": "users|f:email==|ob:__name__asc",
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
"email",
],
"t": 1,
},
"op": "==",
"value": Object {
"stringValue": "",
},
},
],
"limit": null,
"orderBy": Array [
ps {
"dir": "asc",
"field": $ {
"offset": 0,
"segments": Array [
"__name__",
],
"t": 1,
},
},
],
"path": F {
"offset": 0,
"segments": Array [
"users",
],
"t": 1,
},
"startAt": null,
},
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
"email",
],
"t": 1,
},
"op": "==",
"value": Object {
"stringValue": "",
},
},
],
"limit": null,
"on": "F",
"path": F {
"offset": 0,
"segments": Array [
"users",
],
"t": 1,
},
"rn": Array [],
"startAt": null,
},
"T_": null,
"Uf": null,
"metadata": Ec {
"fromCache": false,
"hasPendingWrites": false,
},
"qf": null,
"vf": dc {
"Af": za {
"U": ft {
"database": "(default)",
"projectId": "goalsdev-7eb67",
},
"ignoreUndefinedProperties": false,
"serializer": pe {
"U": ft {
"database": "(default)",
"projectId": "goalsdev-7eb67",
},
"Ue": true,
},
},
"Ef": fc {
"cacheSizeBytes": 41943040,
"credentials": undefined,
"experimentalForceLongPolling": false,
"host": "firestore.googleapis.com",
"ignoreUndefinedProperties": false,
"ssl": true,
"timestampsInSnapshots": true,
},
"INTERNAL": Object {
"delete": [Function _delete],
},
"Tf": Wr {
"Hc": [Function anonymous],
"Zc": [Function anonymous],
"auth": Object {
"addAuthTokenListener": [Function bound ],
"getToken": [Function bound ],
"getUid": [Function bound ],
"removeAuthTokenListener": [Function bound ],
},
"currentUser": ti {
"uid": "BDErkp3H7hbzyce1AVqiS0M6ObT2",
},
"eu": 4,
"forceRefresh": false,
"tu": true,
},
"_f": Ws {
"As": null,
"Es": false,
"Is": Array [],
"Ps": Array [],
"Rs": true,
"Ts": Array [],
"gs": Ds {
"En": null,
"In": 1604894779861,
"Tn": 0,
"_n": [Circular],
"dn": 1000,
"fn": "async_queue_retry",
"mn": 60000,
"wn": 1.5,
},
"ws": Promise {
"_40": 0,
"_55": Promise {
"_40": 0,
"_55": null,
"_65": 0,
"_72": null,
},
"_65": 3,
"_72": null,
},
"ys": [Function anonymous],
},
"df": uc {
"Dh": Xr {
"Hu": Yr {
"au": Ia {
"Cl": "https://firestore.googleapis.com",
"Dl": _t {
"U": ft {
"database": "(default)",
"projectId": "goalsdev-7eb67",
},
"forceLongPolling": false,
"host": "firestore.googleapis.com",
"persistenceKey": "[DEFAULT]",
"ssl": true,
},
"Nl": "projects/goalsdev-7eb67/databases/(default)/documents",
"U": ft {
"database": "(default)",
"projectId": "goalsdev-7eb67",
},
"forceLongPolling": false,
},
"credentials": Wr {
"Hc": [Function anonymous],
"Zc": [Function anonymous],
"auth": Object {
"addAuthTokenListener": [Function bound ],
"getToken": [Function bound ],
"getUid": [Function bound ],
"removeAuthTokenListener": [Function bound ],
},
"currentUser": ti {
"uid": "BDErkp3H7hbzyce1AVqiS0M6ObT2",
},
"eu": 4,
"forceRefresh": false,
"tu": true,
},
"ku": false,
"serializer": pe {
"U": ft {
"database": "(default)",
"projectId": "goalsdev-7eb67",
},
"Ue": true,
},
},
"Ju": Array [],
"Xu": Map {
38 => pt {
"et": mt {
"timestamp": Object {
"nanoseconds": 178070000,
"seconds": 1604896308,
},
},
"lastLimboFreeSnapshotVersion": mt {
"timestamp": Object {
"nanoseconds": 0,
"seconds": 0,
},
},
"resumeToken": ct {
"M": "
–ÙæÒÐôì",
},
"sequenceNumber": 109,
"target": At {
"Z": "users|f:email==|ob:__name__asc",
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
"email",
],
"t": 1,
},
"op": "==",
"value": Object {
"stringValue": "",
},
},
],
"limit": null,
"orderBy": Array [
ps {
"dir": "asc",
"field": $ {
"offset": 0,
"segments": Array [
"__name__",
],
"t": 1,
},
},
],
"path": F {
"offset": 0,
"segments": Array [
"users",
],
"t": 1,
},
"startAt": null,
},
"targetId": 38,
"tt": 0,
},
40 => pt {
"et": mt {
"timestamp": Object {
"nanoseconds": 178070000,
"seconds": 1604896308,
},
},
"lastLimboFreeSnapshotVersion": mt {
"timestamp": Object {
"nanoseconds": 0,
"seconds": 0,
},
},
"resumeToken": ct {
"M": "
–ÙæÒÐôì",
},
"sequenceNumber": 111,
"target": At {
"Z": "users|f:email==e@mail.com|ob:__name__asc",
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
...(truncated to the first 10000 characters)
vc {
"Bf": Ht {
"Qt": $t {
"data": Nt {
"i": [Function i],
"root": _class {
"size": 0,
},
},
"i": [Function i],
},
"Ut": Gt {
"Mt": Nt {
"i": [Function i],
"root": _class {
"size": 0,
},
},
"Ot": Nt {
"i": [Function anonymous],
"root": _class {
"size": 0,
},
},
"i": [Function anonymous],
},
"Wt": true,
"docChanges": Array [],
"docs": Gt {
"Mt": Nt {
"i": [Function i],
"root": _class {
"size": 0,
},
},
"Ot": Nt {
"i": [Function anonymous],
"root": _class {
"size": 0,
},
},
"i": [Function anonymous],
},
"fromCache": false,
"jt": false,
"query": zn {
"an": Array [
ps {
"dir": "asc",
"field": $ {
"offset": 0,
"segments": Array [
"__name__",
],
"t": 1,
},
},
],
"cn": At {
"Z": "users|f:email==e@mail.com|ob:__name__asc",
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
"email",
],
"t": 1,
},
"op": "==",
"value": Object {
"stringValue": "e@mail.com",
},
},
],
"limit": null,
"orderBy": Array [
ps {
"dir": "asc",
"field": $ {
"offset": 0,
"segments": Array [
"__name__",
],
"t": 1,
},
},
],
"path": F {
"offset": 0,
"segments": Array [
"users",
],
"t": 1,
},
"startAt": null,
},
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
"email",
],
"t": 1,
},
"op": "==",
"value": Object {
"stringValue": "e@mail.com",
},
},
],
"limit": null,
"on": "F",
"path": F {
"offset": 0,
"segments": Array [
"users",
],
"t": 1,
},
"rn": Array [],
"startAt": null,
},
},
"Lf": zn {
"an": Array [
ps {
"dir": "asc",
"field": $ {
"offset": 0,
"segments": Array [
"__name__",
],
"t": 1,
},
},
],
"cn": At {
"Z": "users|f:email==e@mail.com|ob:__name__asc",
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
"email",
],
"t": 1,
},
"op": "==",
"value": Object {
"stringValue": "e@mail.com",
},
},
],
"limit": null,
"orderBy": Array [
ps {
"dir": "asc",
"field": $ {
"offset": 0,
"segments": Array [
"__name__",
],
"t": 1,
},
},
],
"path": F {
"offset": 0,
"segments": Array [
"users",
],
"t": 1,
},
"startAt": null,
},
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
"email",
],
"t": 1,
},
"op": "==",
"value": Object {
"stringValue": "e@mail.com",
},
},
],
"limit": null,
"on": "F",
"path": F {
"offset": 0,
"segments": Array [
"users",
],
"t": 1,
},
"rn": Array [],
"startAt": null,
},
"T_": null,
"Uf": null,
"metadata": Ec {
"fromCache": false,
"hasPendingWrites": false,
},
"qf": null,
"vf": dc {
"Af": za {
"U": ft {
"database": "(default)",
"projectId": "goalsdev-7eb67",
},
"ignoreUndefinedProperties": false,
"serializer": pe {
"U": ft {
"database": "(default)",
"projectId": "goalsdev-7eb67",
},
"Ue": true,
},
},
"Ef": fc {
"cacheSizeBytes": 41943040,
"credentials": undefined,
"experimentalForceLongPolling": false,
"host": "firestore.googleapis.com",
"ignoreUndefinedProperties": false,
"ssl": true,
"timestampsInSnapshots": true,
},
"INTERNAL": Object {
"delete": [Function _delete],
},
"Tf": Wr {
"Hc": [Function anonymous],
"Zc": [Function anonymous],
"auth": Object {
"addAuthTokenListener": [Function bound ],
"getToken": [Function bound ],
"getUid": [Function bound ],
"removeAuthTokenListener": [Function bound ],
},
"currentUser": ti {
"uid": "BDErkp3H7hbzyce1AVqiS0M6ObT2",
},
"eu": 4,
"forceRefresh": false,
"tu": true,
},
"_f": Ws {
"As": null,
"Es": false,
"Is": Array [],
"Ps": Array [],
"Rs": true,
"Ts": Array [],
"gs": Ds {
"En": null,
"In": 1604894779861,
"Tn": 0,
"_n": [Circular],
"dn": 1000,
"fn": "async_queue_retry",
"mn": 60000,
"wn": 1.5,
},
"ws": Promise {
"_40": 0,
"_55": Promise {
"_40": 0,
"_55": null,
"_65": 0,
"_72": null,
},
"_65": 3,
"_72": null,
},
"ys": [Function anonymous],
},
"df": uc {
"Dh": Xr {
"Hu": Yr {
"au": Ia {
"Cl": "https://firestore.googleapis.com",
"Dl": _t {
"U": ft {
"database": "(default)",
"projectId": "goalsdev-7eb67",
},
"forceLongPolling": false,
"host": "firestore.googleapis.com",
"persistenceKey": "[DEFAULT]",
"ssl": true,
},
"Nl": "projects/goalsdev-7eb67/databases/(default)/documents",
"U": ft {
"database": "(default)",
"projectId": "goalsdev-7eb67",
},
"forceLongPolling": false,
},
"credentials": Wr {
"Hc": [Function anonymous],
"Zc": [Function anonymous],
"auth": Object {
"addAuthTokenListener": [Function bound ],
"getToken": [Function bound ],
"getUid": [Function bound ],
"removeAuthTokenListener": [Function bound ],
},
"currentUser": ti {
"uid": "BDErkp3H7hbzyce1AVqiS0M6ObT2",
},
"eu": 4,
"forceRefresh": false,
"tu": true,
},
"ku": false,
"serializer": pe {
"U": ft {
"database": "(default)",
"projectId": "goalsdev-7eb67",
},
"Ue": true,
},
},
"Ju": Array [],
"Xu": Map {
40 => pt {
"et": mt {
"timestamp": Object {
"nanoseconds": 178070000,
"seconds": 1604896308,
},
},
"lastLimboFreeSnapshotVersion": mt {
"timestamp": Object {
"nanoseconds": 0,
"seconds": 0,
},
},
"resumeToken": ct {
"M": "
–ÙæÒÐôì",
},
"sequenceNumber": 111,
"target": At {
"Z": "users|f:email==e@mail.com|ob:__name__asc",
"collectionGroup": null,
"endAt": null,
"filters": Array [
_s {
"field": $ {
"offset": 0,
"segments": Array [
"email",
],
"t": 1,
},
"op": "==",
"value": Object {
"stringValue": "e@mail.com",
},
},
],
"limit": null,
"orderBy": Array [
ps {
"dir": "asc",
"field": $ {
"offset": 0,
"segments": Array [
"__name__",
],
"t": 1,
},
},
],
"path": F {
"offset": 0,
"segments": Array [
"users",
],
"t": 1,
},
"startAt": null,
},
"targetId": 40,
"tt": 0,
},
},
"Yu": Object {
"Be": [Function bound Zo],
"oh": [Function bound Oo],
"rh": [Function bound Bo],
"t_": [Function bound Xo],
},
"Zu": Set {},
"eh": Ra {},
"hh": zr {
"_n": Ws {
"As": null,
"Es": false,
"Is": Array [],
"Ps": Array [],
"Rs": true,
"Ts": Array [],
"gs": Ds {
"En": null,
"In": 1604894779861,
"Tn": 0,
"_n": [Circular],
"dn": 1000,
"fn": "async_queue_retry",
"mn": 60000,
"wn": 1.5,
},
"ws": Promise {
...(truncated to the first 10000 characters)
只想访问作为电子邮件字段 == 当前用户电子邮件的文档的数据
编辑:
firestore().collection('users').where("email", "==", userCurrent).get()
.then((querySnapshot) => {
querySnapshot.forEach(doc => {
console.log(doc.data())
})
})
.catch((error) => { console.log(error) })
【问题讨论】:
标签: javascript firebase react-native google-cloud-firestore