web-dev-qa-db-fra.com

Comment accéder à ma base de données Firebase via HTTP REST?

Merci à cette réponse Je peux me connecter à Firebase 3 via HTTP REST et un e-mail/mot de passe. La connexion avec cette API renvoie un jeton d'accès utilisé pour accéder à la base de données Firebase. Ce jeton d'accès expire après 1 heure. Un jeton d'actualisation est également renvoyé après la connexion, que je peux utiliser pour actualiser mon jeton d'accès. Voici ce que je fais spécifiquement:

Méthode:

POST

URL:

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

Charge utile:

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

Réponse:

{
    "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"
}

Dans le cas de l'actualisation de mon jeton d'accès:

URL:

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

Charge utile:

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

Réponse:

{
  "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>"
}

Comment accéder à ma base de données via HTTP REST API étant donné que j'ai mon jeton d'accès?

13
GShocked

Donc, après avoir communiqué avec le support technique, voici ma réponse:

Dans vos règles de base de données, incluez quelque chose comme ceci qui est compatible avec ce que vous faites:

{
"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"
}
    }
  } 
}

Et dans votre base de données, créez une table users, et dans celle-ci, créez une table avec le nom de votre <user-id> du compte de messagerie/mot de passe d'authentification que vous utilisez. Dans ce tableau, vous trouverez les informations auxquelles vous pourrez accéder via votre access-key.

Envoyez ensuite une demande comme celle-ci:

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

access-key est la clé que l'on peut appeler idToken, id_Token, ou access_key dans les réponses JSON de Google.

14
GShocked