Size: a a a

Dart & Flutter по-русски

2021 March 04

ИМ

Илья Маненков... in Dart & Flutter по-русски
Всем привет , помогите советом.
Заходя на нужную страницу добавляю в firebase поле time текущую дату и время через DateTime.now()
Потом где мне нужно ее вытаскиваю и всё хорошо, но проблема в том что есть разница в часовых поясах , и если у меня на одном устройстве будет время установлено другое , то соответственно dateTime получаю другой

Реализовавыю что то похожее на статус когда был последний раз в сети
источник

NG

NIkita Gromov in Dart & Flutter по-русски
Илья Маненков
Всем привет , помогите советом.
Заходя на нужную страницу добавляю в firebase поле time текущую дату и время через DateTime.now()
Потом где мне нужно ее вытаскиваю и всё хорошо, но проблема в том что есть разница в часовых поясах , и если у меня на одном устройстве будет время установлено другое , то соответственно dateTime получаю другой

Реализовавыю что то похожее на статус когда был последний раз в сети
в базе данных всегда хранишь в UTC на устройтвах переводишь в локальное время
источник

ИМ

Илья Маненков... in Dart & Flutter по-русски
NIkita Gromov
в базе данных всегда хранишь в UTC на устройтвах переводишь в локальное время
А есть возможность добавлять в firebase время не с телефона , то есть сейчас достаточно на телефоне изменить дату , и в firebase будет не правильная дата
источник

ИМ

Илья Маненков... in Dart & Flutter по-русски
NIkita Gromov
в базе данных всегда хранишь в UTC на устройтвах переводишь в локальное время
Вообщем сделать серверное время что ли какое то
источник

NG

NIkita Gromov in Dart & Flutter по-русски
Илья Маненков
Вообщем сделать серверное время что ли какое то
Просто единый формат хранения времени, проще всего UTC
источник

NG

NIkita Gromov in Dart & Flutter по-русски
Илья Маненков
А есть возможность добавлять в firebase время не с телефона , то есть сейчас достаточно на телефоне изменить дату , и в firebase будет не правильная дата
Вообще не важно откуда, просто всегда пишешь в FB в UTC а отображаешь локальное
источник

ИМ

Илья Маненков... in Dart & Flutter по-русски
NIkita Gromov
Просто единый формат хранения времени, проще всего UTC
Ну смотри сейчас я делаю последний раз был в сети , и загружаю в поле firebase значение DateTime.now()
Это значение зависит от времени установленном на моём телефоне, а если я поменяю время на телефоне , то у меня получится обмануть других пользователей
источник

ИМ

Илья Маненков... in Dart & Flutter по-русски
NIkita Gromov
Вообще не важно откуда, просто всегда пишешь в FB в UTC а отображаешь локальное
На моём телефоне может вообще стоять 96 год например , и тогда у пользователя будет отображаться что я был в сети в 96 году 😂
источник

NG

NIkita Gromov in Dart & Flutter по-русски
Илья Маненков
На моём телефоне может вообще стоять 96 год например , и тогда у пользователя будет отображаться что я был в сети в 96 году 😂
Если нужен какой то уровень доверия то это только через твой сервер решается, делаешь запрос на сервак он пишет в базу
источник

ИМ

Илья Маненков... in Dart & Flutter по-русски
NIkita Gromov
Если нужен какой то уровень доверия то это только через твой сервер решается, делаешь запрос на сервак он пишет в базу
В том то и дело что мой сервер это firebase, и как можно в нем сделать это время , единое время для всех.
источник

ИМ

Илья Маненков... in Dart & Flutter по-русски
А уже потом это время переводить к локальному
источник

NG

NIkita Gromov in Dart & Flutter по-русски
источник

D

Denis GDevv in Dart & Flutter по-русски
Почему может не срабатывать didUpdateWidget? Делаю внутри виджета setState(), но почему-то в некоторых вызывается didUpdateWidget, а в некоторых нет. Почему такое может быть?
источник

A

Alexandr Borisovich in Dart & Flutter по-русски
Dmytro Osadchuk
Привет, ребят. Есть кто, кому удалось на iOS победить лаги анимаций при первом запуске? Является ли самым лучшим вариантом использовать версию Flutter с выпиленным Metal?
Кеширование пробовал?
источник

A

Alexandr Borisovich in Dart & Flutter по-русски
Илья Маненков
Ну смотри сейчас я делаю последний раз был в сети , и загружаю в поле firebase значение DateTime.now()
Это значение зависит от времени установленном на моём телефоне, а если я поменяю время на телефоне , то у меня получится обмануть других пользователей
Зачем тебе так усложнять? Есть коннект от юзера, запрос данных. Храни дату обращения как таймштамп сервера. Вычитаешь его  з текущего и отправляешь клиенту разницу. Часовые пояса не важны вообще. Время абсодютное.

Если два чувака пернут, один на Экваторе, другой на новой земле - это будет одновременно не зависимо от часовых поясов. Так что если один пердит на минуту позже , то не важно где он, хоть на марсе. Он увидит что он пернул минуту назад. Погрешность задержки сигнала до Марса не берем
источник

D

Dre in Dart & Flutter по-русски
Илья Маненков
В том то и дело что мой сервер это firebase, и как можно в нем сделать это время , единое время для всех.
это серверсайд, firebase functions
источник

D

Dre in Dart & Flutter по-русски
с девайса дейттайм нау действительно нецелесообразно лепить
источник

D

Dre in Dart & Flutter по-русски
но если функцию привязать к логин-логауту то прокатит
источник

D

Dre in Dart & Flutter по-русски
или к любому филд апдейту, но тогда начнет спамить функции
источник

A

Alexandr Borisovich in Dart & Flutter по-русски
Пинговать надо раз в минуту и писать это в лог, если ui открыт
источник