Так как запрос к базе посылается прямо от клиента, пользователь может спокойно изменить условие запроса и посмотреть не свои, а чужие таски? Как я понимаю эта система получается бессмысленна и тут явно нужен бекенд?
Нет, не так. У FB есть аутентификация в ходе которой каждому пользователю присваивается свой уникальный UID вида "wqdMpNOP4vUG79a1Dv3vZtLU9rk2", по этому uid`у и происходит настройка так называемых Security Rules. Для описанной Вами задачи они могли бы выглядеть так:
{
"rules": {
"tasks": {
"$user_id": {
// читать может только сам пользователь
".read": "$user_id === auth.uid",
// писать могут все аутентифицированные и только создавать новые
".write": "auth !== null && !data.exists()"
}
}
}
}
Надеюсь ответил на Ваш вопрос