Javascript Firestore查询返回空快照
我设置了一个节点websocket侦听器来查询数据库中的一些数据。然而,目前该查询返回一个空快照,尽管我知道该查询应该返回一些内容 我正在制作一个简单的基于节点的论坛(虽然我对node很陌生,所以它不是很好的lol),我正在尝试从服务器查询post数据以发送回客户端。我试着检查我的post引用是否正确,并再次检查我查询的值是否存在于集合中。我还检查了数据是否通过套接字正确发送,因此我不知所措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);
让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没问题。实际上,我对此感到惊讶,因为文档中有在“>”
和中使用字符串的示例