Firebase аутентифицируется как администратор
Есть ли способ аутентифицировать Firebase в качестве администратора firebase для полного доступа к нему на чтение и запись (уже есть правила безопасности, защищающие его части), или мне нужно написать правило безопасности, которое каким-то образом позволяет мне доступ к полной базе Firebase, например, путем предоставления определенного пароля/ключа.
Есть ли стандартный или предлагаемый способ сделать это?
Ответы
Ответ 1
См. это для "последней" документации.
authWithCustomToken теперь signInWithCustomToken (firebase version 3.x)
Пример из документации:
firebase.auth().signInWithCustomToken(token).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode === 'auth/invalid-custom-token') {
alert('The token you provided is not valid.');
} else {
console.error(error);
}
});
Ответ 2
Эндрю ответ будет работать только в том случае, если вы аутентифицируете вне своего клиентского кода (в противном случае вы не должны использовать свой MY_SECRET
, очевидно). Поскольку многие люди, такие как я, используют Firebase, чтобы избежать кода сервера, здесь альтернативный ответ.
В большинстве приложений firebase у вас, вероятно, есть объект "Пользователи" в дополнение к вашему простому объекту "auth" входа (который хранит только адрес электронной почты и пароль). Вы можете добавить "isAdmin" или "isModerator" (или все, что вы хотите) к каждому $пользователю в объекте "Пользователи".
И тогда ваши правила будут выглядеть так (если ваш auth.id соответствует вашему $user key):
{
"rules": {
"someObject": {
".write": "root.child('Users').child(auth.uid).child('isAdmin').val() == true"
}
}
}
Ответ 3
Да, есть. Вам просто нужно выполнить аутентификацию с использованием Firebase Secret вместо токена аутентификации. то есть.
firebaseRef.auth(MY_SECRET);
Вы можете найти раздел "Секрет" в разделе "Аутентификация" Forge.
Ответ 4
В соответствии с документацией вам нужно использовать firebaseRef.authWithCustomToken
.
Пример
firebaseRef.authWithCustomToken(FIREBASE_SECRET, function(error, authData) {
if(!error) {
// You are authenticated
}
});
firebaseRef.auth
теперь устарел, вместо этого используйте firebaseRef.authWithCustomToken
.