Я хочу управлять своей базой данных Firebase непосредственно из почтмана или завитка, используя API Https Rest. Например, используя postman и https: //MY_FIREBASE_DATABSE_URL/users.json, чтобы вернуть пользователей json. Если я установил правила безопасности для общего доступаFirebase HTTP POST аргумент auth
{
"rules": {
".read": true,
".write": true
}
все работает нормально.
Но если установить правила безопасности, которые необходимы разрешение
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
я
{ "Ошибку", "permission_denied"}
Насколько я понимаю, мне нужно для добавления https-запроса с auth = SECURITY_TOKEN. Использование секретного ключа из консоли firebase -> Учетные записи службы для SECURITY_TOKEN не работают, но в любом случае это говорит о том, что секреты базы данных устарели.
Итак, я загружаю генератор токенов для java, указанный здесь https://www.firebase.com/docs/rest/guide/user-auth.html#section-rest-server-authentication.
Я использую следующий код для создания моего маркера
public void actionPerformed(ActionEvent e) {
String uid = uidField.getText();
boolean admin = adminField.isSelected();
Map<String, Object> authPayload = new HashMap<String, Object>();
authPayload.put("uid", uid);
authPayload.put("some", "arbitrary");
authPayload.put("data", "here");
TokenOptions tokenOptions = new TokenOptions();
tokenOptions.setAdmin(admin);
TokenGenerator tokenGenerator = new TokenGenerator(<MY_DATABASE_SECRET>);
String token = tokenGenerator.createToken(authPayload, tokenOptions);
System.out.println(token);
tokenField.setText(token);
}
как упомянуто here
где MY_DATABASE_SECRET секретный ключ из firebase консоли упоминалась выше, и UID это идентификатор пользователя из моих пользователей Firebase. Используя этот токен для почтальона, я все еще получаю разрешение.
документации Вы смотрите для устаревшей версии Firebase. Вероятно, ваш проект был создан на новой консоли Firebase. Вы не можете смешивать и сопоставлять версии. Для того, чтобы аутентифицировать вызовы REST с новой версией Firebase, см. Этот ответ: http://stackoverflow.com/a/37444914/209103 от другого сотрудника Firebaser Michael Bleigh. –
То, что я не понимаю в этом сообщении (и я не могу прокомментировать там), - это то, что подразумевается под «вам нужно напрямую использовать учетную запись службы для создания административного доступа», и если мне нужно node.js для нее, или я могу это сделать с Java и как. –