Как получить доступ к базе данных Firebase через HTTP REST API?



Благодаря этому ответу я могу подключиться к Firebase 3 через HTTP REST API и электронную почту/пароль. Вход в систему с помощью этого API возвращает маркер доступа, который используется для доступа к базе данных Firebase. Срок действия этого маркера доступа истекает через 1 час. Маркер обновления также возвращается после входа в систему, который я могу использовать для обновления маркера доступа. Вот что я делаю. в частности:



Метод:



POST


URL:



https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=<my-firebase-api-key>


Полезная нагрузка:



{
email: "<email>",
password: "<password>",
returnSecureToken: true
}


Ответ:



{
"kind": "identitytoolkit#VerifyPasswordResponse",
"localId": "<firebase-user-id>", // Use this to uniquely identify users
"email": "<email>",
"displayName": "",
"idToken": "<provider-id-token>", // Use this as the auth token in database requests
"registered": true,
"refreshToken": "<refresh-token>",
"expiresIn": "3600"
}


В случае обновления маркера доступа:



URL:



https://securetoken.googleapis.com/v1/token?key=<my-firebase-api-key>


Полезная нагрузка:



{
grant_type: "refresh_token",
refresh_token: "<refresh-token>"
}


Ответ:



{
"access_token": "<access-token>",
"expires_in": "3600",
"token_type": "Bearer",
"refresh_token": "<refresh-token>",
"id_token": "<id-token>",
"user_id": "<user-id>",
"project_id": "<project-id>"
}


Как получить доступ к базе данных через HTTP REST API, если у меня есть маркер доступа?

797   1  

1 ответ:

Итак, после общения с технической поддержкой, вот мой ответ:

В правила базы данных включите что-то вроде этого, совместимое с тем, что вы делаете:

{
"rules": {
"users": {
"$user_id": {
// grants write access to the owner of this user account
// whose uid must exactly match the key ($user_id)
".write": "$user_id === auth.uid",
".read": "$user_id === auth.uid"
}
    }
  } 
}

И в вашей базе данных создайте таблицу users, а в ней создайте таблицу с именем вашей <user-id> учетной записи аутентификации по электронной почте/паролю, которую вы используете. В этой таблице находится информация, к которой вы сможете получить доступ через ваш access-key.

Затем отправьте запрос типа это:

https://samplechat.firebaseio-demo.com/users/<user-id>.json?auth=<access-key>

Где access-key - ключ, который может быть известен как idToken, id_Token, или access_key в ответах JSON от Google.

Comments

    Ничего не найдено.