【发布时间】:2020-03-30 14:46:20
【问题描述】:
我正在使用 Express 和 Firebase 实时数据库管理 SDK 来管理数据库。我需要从登录用户那里获取状态为pending 或open 的所有票证,但我不确定如何获取这些数据,也没有在文档中找到解决方案。在 SQL 中会是这样的:
SELECT *
FROM tickets as t
INNER JOIN users as u
WHERE t.owner = u.id
AND (
status = 'pending'
OR status = 'open'
);
如果您需要查看一些代码来理解我在说什么,这就是我到目前为止所尝试的:
router.post('/', async (req: Request, res: Response) => {
const existingRef = database.ref('tickets')
.orderByChild('owner')
.equalTo(req.user.key)
.orderByChild('status')
.equalTo('open')
.orderByChild('status')
.equalTo('pending);
const existingSnapshot = await existingRef.on('child_added');
if (existingSnapshot.val() !== null) {
return res.json(existingSnapshot.val());
}
}
前面的代码将返回状态为pending 和 open 的票证,这没有意义,因为每个票证应该只有一个状态。
那么,我该怎么办?提前致谢
【问题讨论】:
-
我认为 firebase 不是最好的解决方案,因为它的查询能力很差。
标签: javascript node.js firebase express firebase-realtime-database