Firebase Admin Python SDK v2.0.0 a été publié le 17 mai 2017, et certaines méthodes d'appel étaient différentes, je l'ai donc ajouté en supplément.
Le SDK Firebase pour Python a été publié par un responsable de Google le 4 avril 2017 (vers 4/5 tôt le matin, heure du Japon). Le nom officiel est "Firebase Admin Python SDK", et comme son nom l'indique, il s'agit d'un SDK qui prend en charge les API autour de Admin.
Comme son nom l'indique (deuxième fois), le traitement autour de Admin est fourni. Cependant, quand je lis la référence et le guide, il semble que la fonction actuellement fournie n'est "que la partie qui crée le jeton personnalisé et le jeton d'accès à partir de la clé privée du compte de service".
Add the Firebase Admin SDK to your Server | Firebase
Je vais tracer le contenu écrit ci-dessus tel quel, mais attention car il sera obstrué s'il est ** tel quel **.
Tout d'abord, récupérez la clé privée. Ouvrez le projet à partir du site de la console Firebase (https://console.firebase.com/), accédez à Gear> Paramètres du projet> Compte de service à côté de Vue d'ensemble dans le menu, puis cliquez sur "Nouvelle clé privée" en bas de l'écran. Appuyez sur le bouton "Générer" pour obtenir le fichier json.
Ensuite, installez les bibliothèques nécessaires avec pip.
$ pip install firebase-admin
Le code ressemble à ceci.
v1.0.0
getToken.py
import firebase_admin
from firebase_admin import credentials
def getToken:
credential = credentials.Certificate('./serviceAccountKey.json')
scopes = [
'https://www.googleapis.com/auth/firebase.database',
'https://www.googleapis.com/auth/userinfo.email'
]
# access_Obtenez un jeton
accessTokenInfo = credential.get_credential().create_scoped(scopes).get_access_token()
print("access_token:" + accessTokenInfo.access_token)
print("expire:" + str(accessTokenInfo.expires_in))
if __name__ == '__main__':
getToken()
La différence avec le document officiel est que vous pouvez définir la portée sur critique sans utiliser firebase_admin.initialize_app ()
et obtenir l'AccessToken tel quel.
v2.0.0
getToken.py
import firebase_admin
from firebase_admin import credentials
def getToken:
credential = credentials.Certificate('./serviceAccountKey.json')
# access_Obtenez un jeton
accessTokenInfo = credential.get_access_token()
print("access_token:" + accessTokenInfo.access_token)
print("expire:" + str(accessTokenInfo.expiry)) # 「20XX-XX-XX XX:XX:XX.XXXXXX "est renvoyé
if __name__ == '__main__':
getToken()
La différence avec la v1.0.0 est que vous n'avez plus besoin d'obtenir les informations d'identification une fois avec get_credential ()
ou de définir la portée.
De plus, alors que le contenu de la date d'expiration était le nombre de secondes restantes dans la v1.0.0, à partir de la v2.0.0, le nom de la propriété est ʻexpiry`, et la date d'expiration disponible est renvoyée sous forme d'objet datetime. Je vais.
Lorsque vous l'utilisez avec RealtimeDatabase, vous pouvez y accéder en le mettant dans le paramètre ʻaccess_token`. Notez que cet AccessToken est créé par un compte de service, vous pouvez donc lire et écrire tout ce qui est défini sur false par tous les utilisateurs dans les règles de base de données **, alors soyez prudent lorsque vous le manipulez. ** À propos, la date d'expiration du jeton est d'une heure à compter de l'émission.
https://{FIREBASE_PROJECT_ID}.firebaseio.com/hoge.json?access_token={FIREBASE_ACCESS_TOKEN}
Je me demande si vous pouvez obtenir CustomToken de la même manière, mais il n'est toujours pas vérifié car ce n'est plus ce dont vous avez besoin lorsque vous obtenez AccessToken correctement.
Recommended Posts