Функции Firebase, работающие локально, без проверки подлинности с помощью Firebase Admin SDK - PullRequest
0 голосов
/ 21 мая 2018

Я могу успешно запустить этот код при развертывании в проекте Firebase.

const admin = require('firebase-admin');
const functions = require('firebase-functions');

admin.initializeApp();

exports.createUser = functions.https.onRequest((req, res) => {
  admin.auth().createUser({ uid: req.body.id })
    .then(user => {
      return res.send(user);
    })
    .catch(err => {
      return res.status(422).send({ error: err });
    });
});

Это ответ от Firebase:

{
    "uid": "abcdefg1234",
    "emailVerified": false,
    "disabled": false,
    "metadata": {
        "lastSignInTime": null,
        "creationTime": "Sun, 20 May 2018 22:22:55 GMT"
    },
    "tokensValidAfterTime": "Sun, 20 May 2018 22:22:55 GMT",
    "providerData": []
}

Однако, когда я запускаюФункции локально с firebase serve и вызов той же функции (с почтальоном), я сталкиваюсь с ошибками разрешения:

{
    "error": {
        "code": "auth/insufficient-permission",
        "message": "Credential implementation provided to initializeApp() via the \"credential\" property has insufficient permission to access the requested resource. See https://firebase.google.com/docs/admin/setup for details on how to authenticate this SDK with appropriate permissions."
    }
}

Является ли настройка проверки подлинности для firebase-admin на локально работающемЭкземпляр функций Firebase отличается от того, что выполняется на обычных рабочих серверах Firebase?

Характеристики:

 "dependencies": {
    "firebase-admin": "~5.12.0",
    "firebase-functions": "^1.0.1"
  }

1 Ответ

0 голосов
/ 21 мая 2018

После дальнейшего рассмотрения:

https://firebase.google.com/docs/functions/local-emulator

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

Триггеры Cloud Firestore и Realtime Database уже имеют достаточные учетные данные и не требуют дополнительной настройки.

Все другие API, включая API-интерфейсы Firebase, такие как Authentication и FCM или Google API, такие каккак Cloud Translation или Cloud Speech, необходимо выполнить шаги настройки, описанные в этом разделе.Это применяется независимо от того, используете ли вы функции оболочки или службы Firebase.

Таким образом, похоже, что ответ на вопрос «да», вам может потребоваться другой процесс аутентификации, в зависимости от того, какие службы Firebase вамДоступ.

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