код = PERMISSION_DENIED, описание = отсутствует или недостаточно разрешений., причина = ноль - PullRequest
0 голосов
/ 15 октября 2019

Я не могу читать / записывать данные в firestore с действующими правилами.

Я могу получить доступ к своим данным и выполнять операции с ними без установленных правил, как показано ниже:

match /{document=**} {
  allow read, write: if true;
}

Но я получаю сообщение об ошибке «Отказано в доступе» по следующим правилам.

match /{document=**} {
  allow read, write: if request.auth.uid != null;
}

Вот мой код дротика:

if (uid == null) {
  user = await a.currentUser();
  uid = user.uid;
}
DocumentReference docRef = firestore.collection('users').document(uid);
CollectionReference locations = docRef.collection('locations');


await locations.document().setData(<String, double>{
  'latitude': latitude,
  'longitude': longitude,
});

Я могу вспомнить два сценария, в которых этот запрос не выполняется:

  1. request.auth.uid== ноль. Но у меня есть пользователь, вошедший с помощью firebase auth перед этим запросом.
  2. Мои правила безопасности и запрос не совпадают.

Пожалуйста, помогите мне отладить эту проблему.

Редактировать 1:

  1. Я прошел аутентификацию пользователя во время моего запроса Firebase, так как я изменил код для ввода, только если пользователь аутентифицирован, как показано ниже:
    User u = await a.onAuthStateChanged.first;

    if (u != null) {....}
Мне удалось читать / писать с аутентификацией с использованием симулятора Firebase.

Есть ли возможность распечатать фактический запрос, отправляемый в Firebase из dart, с помощью пакета cloud_firestore?

Редактировать 2

  1. Firestore.instance работает с правилами
  2. Firebaseapp, настроенный для моего конкретного приложения с помощью конфигурации, параметры не работают.

Любая помощь в том, почему это может происходить?

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Просто измените ваши правила на приведенные ниже, если вы хотите разрешить кому-либо загружать документы.

allow read, write;

Если вы хотите разрешить только аутентифицированным пользователям разрешать загрузку файлов или документов в вашу базу данных, измените свойправила до

allow read, write: if request.auth != null;
0 голосов
/ 15 октября 2019

измените свои правила на allow read,write: if request.auth !=null;

...