Подтвердить что ты не робот

Firebase аутентифицируется как администратор

Есть ли способ аутентифицировать Firebase в качестве администратора firebase для полного доступа к нему на чтение и запись (уже есть правила безопасности, защищающие его части), или мне нужно написать правило безопасности, которое каким-то образом позволяет мне доступ к полной базе Firebase, например, путем предоставления определенного пароля/ключа.

Есть ли стандартный или предлагаемый способ сделать это?

4b9b3361

Ответ 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.