2016-03-03 12 views
0

Я хотел бы знать, что является лучшим способом работы с датами в IOS с помощью Firebase-back-end.Работа с датами - iOS - Firebase

В моем приложении у меня есть события, и пользователям разрешено отправлять данные до определенного времени. Как я могу запретить пользователю изменять свою системную дату, чтобы иметь возможность делать изменения в событиях, пока это невозможно? Как мы обычно предотвращаем эти случаи в iOS? я теперь, что мы могли бы работать с отметкой времени от Firebase, но это немного раздражает, чтобы запросить Отметка времени каждый раз, когда вам нужно работать с датами ..

Спасибо за помощь,

Генри

ответ

0

Если вы так полагаетесь на часы клиента и не можете проверить их с помощью сервера, вы можете реализовать consensus protocol, который позволяет другим клиентам проверять отметку времени/сообщение до его принятия.

3

Если у вас есть прецедент, где временная метка на стороне клиента не является хорошей/безопасной, вы всегда можете использовать механизм временной метки Firebase на стороне сервера.

От documentation:

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

var userLastOnlineRef = Firebase(url:"https://<YOUR-FIREBASE-APP>.firebaseio.com/users/joe/lastOnline") 
userLastOnlineRef.onDisconnectSetValue([".sv": "timestamp"]) 

Вы также можете использовать now variable in your security rules, чтобы убедиться, что поле метки времени таким же, как (или, по крайней мере, не после) now.

+0

Спасибо. Может ли это значение «timestamp» использоваться в запросе или когда вы вставляете значение. Например: 'ref.childByAppendingPath (" users/joe/updatedAt "). SetValue (" timestamp ")'? – user3900157

+0

Да. http://stackoverflow.com/questions/25536547/how-do-i-get-a-server-timestamp-from-firebases-ios-api –

Смежные вопросы