Будет ли автоматически сгенерированный идентификатор Firestore _ подчеркивать? - PullRequest
0 голосов
/ 04 июня 2018

У меня есть простая логика, которая объединяет 2 идентификатора пожарного магазина с _, то есть id1_id2.И при получении составного ключа я разделил его, используя _.Следовательно, возможно ли, чтобы автоматически сгенерированный идентификатор Firestore содержал символ подчеркивания _, поэтому моя простая логика разбивается на символ _ подчеркивания?

Я использую Firestore с Angular через AngularFire2 .

Упрощенный фрагмент.

constructor(private afs: AngularFirestore) { const id1 = this.afs.createId(); const id2 = this.afs.createId(); const compositeKey = id1 + '_' + id2; }

Мне нужен ComboKey, потому что я хочу получить пример здесь от разработчика Google Developer: примерrelationships/{followerID_followedID}.Есть и другие возможные подходы к достижению того же результата.Однако, следуя учебному пособию, в котором рассказывается об использовании ComodKey, я хотел бы понять, нет ли конфликта в использовании символа подчеркивания _ для разделения 2 идентификаторов?

enter image description here

CompositeKey не используется для прямого запроса в Firestore.Он используется для маршрутизации URL.У меня есть маршрутный вызов localhost:4200/relationship/follwerId_followId

Я бы прочитал для relationship/:id в Angular, затем разделить на _ подчеркивание и, наконец, запрос .collection('user_profile').doc(followerId) и .collection('user_profile').doc(followedId), чтобы показать профиль обоих пользователей в одномстр.

1 Ответ

0 голосов
/ 04 июня 2018

Единственное, что вы можете сделать, - это найти формат для ваших данных, который позволит вам на 100% знать, что шаблон не будет дублироваться случайным образом Firebase.

Ключи Firestore используют модифицированный алфавит Base64как они сделали с базой данных Firebase Realtime:

-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz

Они получены из временной метки и случайного значения.Вы можете найти алгоритм здесь .

Существует небольшой набор недопустимых символов для Firebase, и они перечислены в этом ответе :

Ограничения набора символов

Обратите внимание, что URL-адреса, используемые для создания ссылок Firebase, могут содержать любые символы Юникода, кроме:

  • .(точка)
  • $ (знак доллара)
  • [(левая квадратная скобка)
  • ] (правая квадратная скобка)
  • # (знак хеша или фунта))
  • / (косая черта)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...