API REST Firestore с токеном Firebase Id - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь создать новый документ в firestore, используя токен на предъявителя, полученный из Auth SDK (ios, но на самом деле я использую FirebaseAuth для osx, поэтому у меня нет другого выбора, кроме как использовать REST, потому что нет FirebaseFirestoreподдержка osx).

Правила:

service cloud.firestore {
  match /databases/{database}/documents {    
    match /places {
      allow create, update, delete, read: if true;
    }
  }
}

Для получения токена

Auth.auth().currentUser?.getIDTokenForcingRefresh(true, completion ..

После того, как я получаю токен в виде строки и помещаю его в заголовок Авторизация: BearerMY_RETRIEVED_TOKEN

Ссылка, которую я запрашиваю

https://firestore.googleapis.com/v1beta1/projects/MYPROJECTID/databases/(default)/documents/places?fields=fields&documentId=kk&key=API_KEY_FOR_WEB_APP_FROM_FIREBASE_PROJECT_SETTING

Итак, я передаю ключ из настроек проекта Firebase для Web

Тело этого запроса POST

{
  "fields": {
    "nn": {
        "stringValue": "hhh"
    }
  }
}

Но в конце я получаю в ответ 403.

{
  "error": {
    "code": 403,
    "message": "Missing or insufficient permissions.",
    "status": "PERMISSION_DENIED"
  }
}

Я уже сломал голову, пытаясь найти ошибку.Заранее спасибо!

1 Ответ

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

У меня была такая же проблема несколько дней назад.

Вы должны попытаться изменить свои правила, как показано ниже:

service cloud.firestore {
  match /databases/{database}/documents {    
    match /places/{document=**} {
      allow create, update, delete, read: if true;
    }
  }
}

В этом случае вы устанавливаете правила для всех документов * 1006.*.Также вы можете проверить свои правила в симуляторе правил.Это работает довольно хорошо.

Надеюсь, это поможет вам

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