Добрый день, я сейчас изучаю свой путь через NodeJS и столкнулся с проблемой, которую не знаю, как решить. (Я довольно новичок как в Node, так и в Firebase.)
У меня есть коллекция записей в firebase, в которой есть записи, которые выглядят так:
{
"id": "1zbRQwgo1uOGfjOZrtwO",
"userId": "wCT1OU8xEkdPHHR4QFPN",
"compId": "uH1Netp3kizZZaoBm57v",
"roundId": 2,
"scores": [
7,
7
],
"total": 52
},
Изначально у меня был маршрут для / records / id /: id и отдельный для / records / centreId /: id и другой для / records / userId /: id et c, чтобы мой API мог предоставлять результаты на основе идентификатора или centreId или имени компа. Это работает, но, очевидно, не очень хорошо и означает много дублированного кода.
В настоящее время я пытаюсь переместить это на использование "req.query", чтобы я мог иметь один маршрут, который будет обрабатывать вещи на основе параметров запроса передается в запросе.
Я пытался сделать это с помощью оператора If
if (req.query['userId']){
query = dbConn.db.collection('entries').where('userId', '==', req.query.userId)
} else {
query = dbConn.db.collection('entries');
};
Какой вид работы, но не кажется, что это правильный способ сделать что-то, если я хочу искать несколько вещей, например. Записи для идентификатора пользователя и compID и, возможно, даже roundId одновременно могут привести к путанице блоков If.
Я думал, что операторы Switch могут быть подходящим способом, но это тоже не сработало.
Какой лучший способ сделать это, чтобы я отправлял в firebase, чтобы я мог получить 1-x число секций .where ()?