Переменная now
в правилах безопасности Firebase задокументирована как:
Содержит количество миллисекунд с начала Unix в соответствии с серверами базы данных Firebase Realtime.
Поскольку ваша дата хранится в виде строки, ваши правила теперь сравнивают различные типы:
"Sun Apr 21 2019 14:14:00 GMT+0200 (heure d’été d’Europe centrale)" <= 1555855344955
Это сравнение никогда не будет верным, поскольку сравнение строк и чисел никогда не дает полезного результата.
Вам нужно будет написать код, чтобы получить значения одного типа, чтобы можно было сравнивать. А поскольку даты в виде строк не легко сопоставимы, это означает, что вам нужно преобразовать строку обратно в дату или в числовую метку времени.
Я не думаю, что это возможно в правилах безопасности Firebase. Но даже если бы это было возможно, я настоятельно рекомендую выбрать лучший подход. Сохраните свою дату как метку времени:
developpeInclineRef.child("timestamp").set(date.getTime());
или
developpeInclineRef.child("timestamp").set(Date.now());
При этом сравнение становится тривиальным:
"timestamp": {
".validate":"newData.val() <= now"
},
Если вы также хотите сохранить дату в формате отображения, попробуйте сохранить ее в двух форматах: в качестве временной метки и в виде строки.