как установить разрешения в firebase firestore - PullRequest
0 голосов
/ 23 января 2019
    $path = "firebase_auth.json";

    $config = array(
        "projectId" => "XXXX",
        "keyFile" => json_decode(file_get_contents($path), true)
    );
    $firestore = new FirestoreClient($config);
    $collectionReference = $firestore->collection('Channels');
    $snapshot = $collectionReference->documents().get();

Ответ этого кода:

Обнаружено необработанное исключение

Тип: Google \ Cloud \ Core \ Exception \ ServiceException

Сообщение:{"message": "Отсутствует или недостаточно разрешений.", "code": 7, "status": "PERMISSION_DENIED", "details": []}

Имя файла: / var / www / html / riglynx/vendor/google/cloud/Core/src/GrpcRequestWrapper.php

Номер строки: 263

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Причина, по которой вы получаете ошибку, заключается в том, что вам не разрешен доступ к документам коллекции, называемой «Каналы».

Чтобы исправить это, вы должны войти в консоль Firebase.Перейдите в «База данных»> «В базе данных пожарного магазина» вы должны нажать «Правила».

В соответствии с правилами вы можете дать разрешение по своему желанию.Если вы хотите предоставить доступ всем пользователям, вы можете просто заменить текущий код следующим кодом.(Не очень хорошая практика и небезопасная)

service cloud.firestore {
 match /databases/{database}/documents {
  match /{document=**} {
    allow read, write;
  }
 }
}
0 голосов
/ 23 января 2019

извлечение Начало работы с правилами безопасности Cloud Firestore Документация.И см. Условия написания для Cloud Security Fireirestore Документация.

Одним из наиболее распространенных шаблонов правил безопасности является управление доступом на основе состояния аутентификации пользователя.Например, вашему приложению может потребоваться разрешить запись данных только зарегистрированным пользователям:

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow the user to access documents in the "cities" collection
    // only if they are authenticated.
    match /cities/{city} {
      allow read, write: if request.auth.uid != null;
    }
  }
}

Это должно помочь вам начать работу.

...