Ошибки обнаружения Flutter firestore - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь загрузить документ в облако. Этот документ действует как запрос, который функция Cloud обрабатывает позже. В любом случае, мой код для написания документа:

try {
  Firestore.instance.collection('cloud_requests').document().setData(
      {'UID': user.uid, 'UDID': cameraScanResult, 'request': 'add'});
} on PlatformException catch (e) {
  print(e);
  Alert(
      context: context,
      type: AlertType.error,
      title: "Something went wrong.",
      buttons: [
        DialogButton(
          onPressed: () {
            Navigator.pop(context);
          },
          color: Colors.red,
          child: Text(
            "Ok",
            style: TextStyle(color: Colors.white, fontSize: 20),
          ),
        ),
      ]).show();
  return;
}

Проблема в том, что ошибка с отсутствующим разрешением является преднамеренной, поскольку мои правила установлены следующим образом:

match /cloud_requests/{cloudRequest} {
    
      function isUser() {
        return request.auth != null && (request.resource.data.UID == request.auth.uid);
      }
      
      function isValidDevice() {
        return exists(/databases/$(database)/documents/devices/$(request.resource.data.UDID));
      }
      
      function isValidRequest() {
        return (request.resource.data.request == "add" || request.resource.data.request == "remove")
      }
    
      allow write: if (isUser() && isValidDevice() && isValidRequest());
      allow read: if false;
    }

Несмотря на попытки поймать ошибка с попыткой поймать или с помощью опции .catchError(), я не могу ее уловить.

1 Ответ

0 голосов
/ 06 августа 2020
• 1000 *

Я использовал .then(), а затем .catchError(). Вроде пока работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...