Запретить вставку данных в Firebase после даты отключения в приложении Flutter - PullRequest
0 голосов
/ 25 января 2020

В моем приложении для флаттера я хочу запретить пользователям вводить свои номинации после установленной даты.

Например, существует экзаменационная номинация с предельной датой 31 марта 2020 года. Я вставляю данные номинации из моего флаттера в базу данных Firebase. В приложении я проверяю, что текущая дата должна быть до 31 марта, а затем разрешить только ввод данных. Однако, если пользователь изменит мобильные данные в обратном направлении, приложение позволит ввести номинации для экзамена.

Я знаю, если я напишу облачную функцию Firebase и переместу туда свой код вставки, это решит проблему. Но у меня есть много кода, который мне придется переписать :-(. Есть ли другое решение, которое позволит мне узнать текущую текущую дату? Что, если inte rnet выключен?

Благодарю вас заранее

Ответы [ 2 ]

1 голос
/ 25 января 2020

Возможно, вы могли бы написать небольшое количество внутреннего кода, чтобы прочитать временную метку сервера Firebase, и использовать ее для проверки отсечки. См. Этот код:

exports.currentTime = functions.https.onRequest((req, res) => {
    res.send({"timestamp":new Date().getTime()})
})

Я получил это из этого SO ответа, поэтому не спрашивайте меня о более подробной информации: -)

Как сохранить текущую дату / время, когда Я добавляю новое значение в базу данных Firebase Realtime

Не уверен, как обработать Inte rnet off ... но если вы не можете прочитать дату на сервере, они не могут отправить результаты ,

1 голос
/ 25 января 2020

Единственный вариант, который не включает в себя написание внутреннего кода, - это использование правил безопасности для ограничения записи в базу данных на основе текущей даты. То, что вам нужно сделать, это настроить правило для коллекции, которое должно быть ограничено, и оно будет иметь строку, которая выглядит примерно так:

allow write: if request.time < timestamp.date(yyyy, mm, dd);

Где yyyy, mm и dd - компоненты даты. Если вам нужно что-то более конкретное c, прочтите документацию API правил безопасности для функций отметки времени - вам нужно будет указать время в миллисекундах. Обратите внимание, что временные метки в правилах безопасности всегда измеряются в UT C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...