Firestore查询返回空快照

时间:2019-10-30 22:56:06

标签: javascript node.js firebase google-cloud-firestore

我设置了一个节点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

1 个答案:

答案 0 :(得分:1)

我很惊讶在任何地方都没有重复的问题,但这是您的答案...

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

例如

db.collection('posts').where('id', '==', parseInt(postID, 10))