Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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 Firestore查询返回空快照_Javascript_Node.js_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript Firestore查询返回空快照

Javascript Firestore查询返回空快照,javascript,node.js,firebase,google-cloud-firestore,Javascript,Node.js,Firebase,Google Cloud Firestore,我设置了一个节点websocket侦听器来查询数据库中的一些数据。然而,目前该查询返回一个空快照,尽管我知道该查询应该返回一些内容 我正在制作一个简单的基于节点的论坛(虽然我对node很陌生,所以它不是很好的lol),我正在尝试从服务器查询post数据以发送回客户端。我试着检查我的post引用是否正确,并再次检查我查询的值是否存在于集合中。我还检查了数据是否通过套接字正确发送,因此我不知所措 让query=db.collection('posts')。其中('id','=',posted);

我设置了一个节点websocket侦听器来查询数据库中的一些数据。然而,目前该查询返回一个空快照,尽管我知道该查询应该返回一些内容

我正在制作一个简单的基于节点的论坛(虽然我对node很陌生,所以它不是很好的lol),我正在尝试从服务器查询post数据以发送回客户端。我试着检查我的post引用是否正确,并再次检查我查询的值是否存在于集合中。我还检查了数据是否通过套接字正确发送,因此我不知所措


让query=db.collection('posts')。其中('id','=',posted);
query.get().then(快照=>{
if(snapshot.empty){
emit('resPost','Failed');
返回;
}
snapshot.forEach(doc=>{
console.log(doc.data());
emit('resPost',doc.data());
});
});
当我加载post页面时,我会得到与空快照相关的响应

编辑:根据@Phil的建议,我已经为
postID
变量添加了一个日志

console.log('postID',postID的类型,JSON.stringify(postID))
输出:

postID string "0"
如果需要,这里有一个控制台的屏幕截图。ClientID是websocket连接的ID。

我很惊讶没有重复的问题,但这是你的答案

Firestore的查询相等条件是类型敏感的。如果集合属性是整数,则需要将其与整数而不是字符串进行比较

比如说

db.collection('posts')。其中('id','=',parseInt(postID,10))

那么您收到“失败”消息了吗?你试过调试postID的值吗?@Phil你能详细说明一下吗?抱歉,我是个新手,所以我不知道调试值是什么意思。如果你的意思是登录控制台检查它是否是正确的值,我已经这样做了。“如果你的意思是登录控制台”@Phil啊,对不起,是的,当我试图请求帖子时,我在我的客户端收到失败的响应。
postID
是通过函数传递的整数,因此它不应该有任何前导或尾随空格或其他字符。该集合包含每个帖子的单独文档。每个帖子都有论坛所需的数据,包括
id
属性。请在查询之前添加
console.log('postID',type of postID,JSON.stringify(postID))
,并将输出完全包含在控制台/终端中(如有可能,屏幕截图)。另外,如果省略
.where()
,会发生什么情况?你有什么结果吗?@Rayinator没问题。实际上,我对此感到惊讶,因为文档中有在
“>”
中使用字符串的示例