Детальные разрешения в Firestore с учетными записями служб - PullRequest
0 голосов
/ 25 декабря 2018

Я пишу инструмент, который собирает информацию из диагностических пакетов.Результаты этого инструмента записываются в Firestore для аналитики.Инструмент написан на Python и распространяется в виде пакета, включая .json для учетной записи службы.Эта учетная запись службы используется для аутентификации чтения + записи из базы данных.Ниже приведен фрагмент из компонента базы данных, используемого в каждом пакете:

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore

    cred=credentials.Certificate(os.path.join(os.path.dirname(os.path.abspath(__file__), 'name_of_file.json'))
    firebase_admin.initialize_app(cred)

    db = firestore.client()

Я хочу сузить разрешения для Firestore, поскольку в настоящее время все пользователи с этими учетными данными имеют полный доступ к Firestore.Глядя на документы, кажется, что это может оказаться невозможным:

Код, использующий Firebase Admin SDK с учетной записью службы для доступа к Firestore, в настоящее время не может быть ограничен определенным идентификатором пользователя с цельюсоблюдение правил безопасности.Весь доступ через Admin SDK будет обходить правила безопасности и иметь полный контроль над базой данных.

Кто-нибудь знает обходной путь для этого варианта использования?В качестве альтернативы, можно ли «жестко закодировать» учетную запись пользователя Firebase?Если да, то что будет наиболее простой реализацией?

Пожалуйста, дайте мне знать, если есть что-то, что я могу уточнить, я довольно новичок в Firebase, поэтому я могу идти в совершенно неправильном направлении!

Спасибо!

1 Ответ

0 голосов
/ 25 декабря 2018

В настоящее время Firestore не имеет возможности настроить соединение с использованием служебной учетной записи с некоторыми ограниченными разрешениями.При использовании Admin SDK у вас всегда будет полный доступ на чтение и запись ко всей базе данных.Это часто запрашиваемая функция, и вам следует подать запрос функции , если это также полезно для вас.

...