我设置了一个节点websocket侦听器,以查询数据库中的某些数据。但是,即使我知道查询应该返回某些内容,当前查询仍会返回一个空快照。
我正在建立一个基于节点的简单论坛(尽管我对Node很陌生,所以它不是那么好笑),并且我正在尝试从服务器查询发布数据以发送回客户端。我试图检查我的帖子引用是否正确,并再次检查了我查询的值是否存在于集合中。我还已经检查过数据是否通过套接字正确发送,所以我很茫然。
for _, el := range(arr) {
arr = append(arr, el)
}
加载帖子页面时,我得到的响应与空快照有关。
编辑:如@Phil所建议,我包括了
let query = db.collection('posts').where('id','==',postID);
query.get().then(snapshot => {
if (snapshot.empty) {
client.emit('resPost', 'Failed');
return;
}
snapshot.forEach(doc => {
console.log(doc.data());
client.emit('resPost', doc.data());
});
});
变量的日志。
postID
输出:
console.log('postID', typeof postID, JSON.stringify(postID))
如果需要,这里是控制台的屏幕截图。 ClientID是Websocket连接的ID。 https://imgur.com/a/MdtwEvu
答案 0 :(得分:1)
我很惊讶在任何地方都没有重复的问题,但这是您的答案...
Firestore的查询相等条件对类型敏感。如果您的collection属性是整数,则需要将其与整数而不是字符串进行比较。
例如
db.collection('posts').where('id', '==', parseInt(postID, 10))