Ответ 1
Обновлено (20160611): если вы создали свой проект на https://firebase.google.com, шаги доступа к базе данных с сервера различны. См. Этот ответ: Возможно ли выполнить проверку маркеров на стороне сервера в Firebase 3?
Есть два способа, которыми вы можете это сделать: создать токен аутентификации сервера или использовать секрет Firebase.
Создание маркера сервера Вы можете использовать те же библиотеку генераторов токенов для вашего языка/платформы сервера. Node.js и серверы Java работают лучше всего.
Создайте токен с предварительно выбранным uid. Если вы пишете сервер Node.js, код может выглядеть примерно так:
var FirebaseTokenGenerator = require("firebase-token-generator");
var tokenGenerator = new FirebaseTokenGenerator("<your-firebase-secret>");
var token = tokenGenerator.createToken(
{uid: "my-awesome-server"},
{ expires: <far_into_the_future_seconds> });
Используйте токен для аутентификации вашего клиента. Здесь более Node.js код:
var ref = new Firebase("https://<your-firebase>.firebaseio.com/");
ref.authWithCustomToken(token, function(error, authData) {
...
});
Если нет клиента для вашего языка сервера, например. PHP, используйте токен для ваших запросов REST в качестве параметра auth
.
Обновите свои правила безопасности, чтобы предоставить специальные разрешения вашему серверу, идентифицированные с помощью uid, как это простое правило, которое позволяет читать доступ ко всей Firebase
{
"rules": {
".write": false,
".read": "auth.uid === 'my-awesome-server'"
}
}
Получите доступ ко всем данным, сделайте потрясающие вещи.
Преимущества
- Это официально рекомендованный Firebase способ аутентификации вашего сервера.
- Ваш сервер будет уважать правила проверки.
- Сервер - это еще один пользователь. Вы можете использовать правила безопасности для обеспечения мелкозернистого доступа к вашим данным.
- Поскольку доступ имеет мелкозернистую структуру, маловероятно, что ошибка на вашем сервере приведет к повреждению, например, удалите ваш root Node.
Секрет Firebase
Если вы такой разработчик, который любит жить на грани, и набирает sudo
при падении шляпы, вы может также аутентифицироваться, используя прямую тайну Firebase.
Но серьезно, не делайте этого. Это опасно.
Причины этого не делать
- Точно так же, как слепо использовать
sudo
, это невероятно опасно. - Ваш сервер не будет соблюдать ваши правила проверки.
- Полный доступ к вашему серверу /писать доступ к вашей Firebase. Если у него есть достаточно уродливая ошибка, может удалить или испортить данные, которые не имеют доступа к бизнесу.
- Ваш секрет заканчивается в большем количестве мест (потенциально в журналах исходящих запросов, и т.д). Вы получаете больше риска, если он выйдет.