Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从react native firestore onSnapshot获取精确数据,而不是使用数组获取数据?_Javascript_Firebase_React Native_Google Cloud Firestore - Fatal编程技术网

Javascript 如何从react native firestore onSnapshot获取精确数据,而不是使用数组获取数据?

Javascript 如何从react native firestore onSnapshot获取精确数据,而不是使用数组获取数据?,javascript,firebase,react-native,google-cloud-firestore,Javascript,Firebase,React Native,Google Cloud Firestore,我在useffect中调用onSnapshot,并在特定文档更新时获取数据。 我可以获取数据,但数据是作为带有索引的数组返回的。 比如说, {"createdAt": [7, 1595865535572], "lastMessage": [16, {"assetURL": [Array], "conversationId": [Array], "createdAt": [Array], &quo

我在useffect中调用onSnapshot,并在特定文档更新时获取数据。 我可以获取数据,但数据是作为带有索引的数组返回的。 比如说,

{"createdAt": [7, 1595865535572], 
"lastMessage": [16, {"assetURL": [Array], "conversationId": [Array], "createdAt": [Array], "text": [Array]}], 
"observerUIDs": [10, [[Array], [Array]]], 
"observers": [10, [[Array], [Array]]]
在api调用中,我必须得到

{createdAt: 1595865535572, 
lastMessage: {"assetURL": "URL", "conversationId": "ID", "createdAt": 1242141204, "text": "HI}, observerUIDS: [{...}, {...}], ...}
在useEffect调用中,我作为

const subscriber = firestore()
      .collection('Conversations')
      .where('observerUIDs', 'array-contains', 'uid')
      .onSnapshot(async documentSnapshot => {
documentSnapshot.docChanges().forEach((change) => {
          var event = change._nativeData.doc.data;
          console.log(event);
})
除了带索引的数组之外,有没有其他方法可以获得精确的数据

谢谢

使用
documentSnapshot.docs[0]。\u data
而不是

看起来您正在尝试使用未通过API公开的私有数据,这些数据同时包含
\u nativeData
\u data
。这是一个坏主意,因为这些实现细节可能会随着时间的推移而改变,并破坏您的代码。您应该使用公共api。我从上述方法获取的数据与我从api获取的数据完全相同。我试图减少api调用的可能性,因为如果我在OnSnapshot中调用api,它会加倍读取。我想你没有领会我的观点——使用以下划线开头的私有未记录属性是个坏主意。您现在使用的对象上有一些公共属性和方法,可以让您访问文档中明确说明的所有这些数据。正如我对您的问题所作的评论,更清楚地查看您的文档数据将有助于您了解最佳操作。请编辑问题以更详细地显示您试图阅读的文档。那个调试日志不是很有用。文档的屏幕截图可能会有所帮助。