Ошибка 403 при вызове Firebase Firestore Rest API - PullRequest
0 голосов
/ 02 апреля 2020

Вот код, которым я генерирую accessToken для вызова API.

import firebaseConfig from './../firebaseConfig';
import firebase from "firebase/app";
import "firebase/auth";

firebase.initializeApp(firebaseConfig);
var provider = new firebase.auth.GoogleAuthProvider();

firebase.auth().signInWithPopup(provider).then(function(result) {
  var token = result.credential.accessToken;
  sessionStorage.setItem("__token", token);    // Token saved
}.bind(this)).catch(function(error) {

});

С этим кодом я получаю токен в sessionStorage. Вот фрагмент, как я использую Firebase Rest API.

var URL = https://firestore.googleapis.com/v1/projects/qtbt-a8bf8/databases/(default)/documents/users/[USER_ID]?key=[YOUR_API_KEY]
var token = sessionStorage.getItem("__token");
const config = {
  headers: { Authorization: `Bearer ${token}` , Accept: 'application/json'}
};

axios.get(URL, config)
  .then(function (response) {
    // handle success
    console.log(response);
  })
  .catch(function (error) {
    // handle error
    console.log(error);
  })
  .finally(function () {
    // always executed
  });

При вызове ax ios я получаю сообщение об ошибке 403. Ответ:

code: 403
message: "Request had insufficient authentication scopes."
status: "PERMISSION_DENIED"

1 Ответ

1 голос
/ 02 апреля 2020

Вы пропустили API-ключ в вызове. apikey и token должны быть в заголовках.

var token = sessionStorage.getItem("__token");// verify your token is correct. 
var headers = {'x-api-key' : 'key valu goes here', 'authorization': ${token} }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...