Вы можете использовать graphql & amp; firebase локально.
Одно слово о «многих обратных переходах, необходимых для разрешения запроса»: если вы не возражаете против данных передано, это не так много, так как все «roundtrips» объединены в один и тот же сокет. Но если вы хотите избежать больших кадров, вам просто нужно положить немного dataloader
перед вашей базой данных firebase.
Для обновлений в реальном времени вам нужно только подписаться на события в реальном времени от firebase и отправить их для веб-администратора, чтобы преобразовать их в реальные подписки graphql, которые могут быть решены с помощью вашей схемы.
Более подробную информацию по этой самой проблеме можно найти на моей средней должности: «Только для клиентской стороны» в реальном времени веб-приложения с Firebase, GraphQL и apollo-client 2.0
Надеюсь, что это поможет!
Я рекомендовал бы смотреть на британский правительственный Стандарт Данных для почтовых индексов [ссылка, теперь мертвая; архив XML, см. Википедия для обсуждения]. Существует краткое описание о данных, и приложенная схема XML обеспечивает регулярное выражение. Это не может быть точно, что Вы хотите, но были бы хорошей начальной точкой. RegEx отличается от XML немного, поскольку символ P в третьем положении в формате A9A 9AA позволяется данным определением.
RegEx, предоставленный британским правительством, был:
([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9][A-Za-z]?))))\s?[0-9][A-Za-z]{2})
, Как указано на обсуждении Википедии, это позволит некоторые нереальные почтовые индексы (например, те стартовый AA, ZY), и они действительно обеспечивают более строгий тест, который Вы могли попробовать.
Первая половина Допустимых форматов почтового индекса
Положение 1 - QVX, не используемый
Положение 2 - IJZ, не используемый кроме положения 3 GIR 0AA
- AEHMNPRTVXY только использовал
Положение 4 - ABEHMNPRVWXY
Вторая половина почтового индекса
Положение 2+3 - CIKMOV, не используемый
, Помнит не, все возможные коды используются, таким образом, этот список является необходимым, но не sufficent условие для допустимого кода. Могло бы быть легче просто соответствовать против списка всех допустимых кодов?
^([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]? {1,2}[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)$
Регулярное выражение для соответствия допустимым британским почтовым индексам. В британской почтовой системе не все буквы используются во всех положениях (то же с номерными знаками механизма) и существуют различные правила управлять этим. Этот regex принимает во внимание те правила. Детали правил: первая половина Допустимых форматов почтового индекса [A-Z][A-Z] [0-9] [A-Z] [A-Z][A-Z] [0-9] [0-9] [A-Z] [0-9] [0-9] [A-Z][A-Z] [0-9] [A-Z][A-Z][A-Z] [A-Z] [0-9] [A-Z] [A-Z] [0-9] Положение Исключений - Сначала. Contraint - QVX не используемое Положение - Второй. Contraint - IJZ, не используемый кроме GIR 0AA Положение - Треть. Ограничение - AEHMNPRTVXY только использовал Положение - Forth. Contraint - ABEHMNPRVWXY Вторая половина Допустимых форматов почтового индекса [0-9] Положение Исключений [A-Z][A-Z] - Второй и Третий. Contraint - CIKMOV, не используемый
Взгляните на код Python на этой странице:
http://www.brunningonline.net/simon/blog/archives/001292.html
У меня есть почтовый индекс парсинг делать. Требование довольно простое; Мне нужно разобрать почтовый индекс на исходящий и (необязательно) инкод. Хорошая новость заключается в том, что мне не нужно выполнять какую-либо проверку - мне просто нужно нарезать то, что мне было предоставлено, весьма разумным образом. Я не могу много предполагать о своем импорте с точки зрения форматирования, то есть регистра и встроенных пробелов. Но это не плохие новости; Плохая новость в том, что мне приходится делать все это в ролевой игре. : - (
Тем не менее, я собрал небольшую функцию Python, чтобы прояснить мои мысли.
Я использовал ее для обработки почтовых индексов.
t плохие новости; Плохая новость в том, что мне приходится делать все это в ролевой игре. : - (Тем не менее, я собрал небольшую функцию Python, чтобы прояснить мои мысли.
Я использовал ее для обработки почтовых индексов.
t плохие новости; Плохая новость в том, что мне приходится делать все это в ролевой игре. : - (Тем не менее, я собрал небольшую функцию Python, чтобы прояснить мои мысли.
Я использовал ее для обработки почтовых индексов.