Je lie mon application avec cloude firestore et j'utilise python pour cela et je dois récupérer le champ de valeur "Balance" pour vérifier s'il est valide. mais quand j'essaye de le récupérer, j'obtiens des sorties comme celle-ci
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use the application default credentials cred = credentials.Certificate("/Users/admin/Downloads/serviceAccountKey.json") firebase_admin.initialize_app(cred) db = firestore.client() user_id= 'my user id in database' u = 80 userbal_new= u-10 users_ref = db.collection(u'users').document(user_id) #update balance #users_ref.update({u'Balance': userbal_new}) #get balance get_bal= users_ref.get({u'Balance'}) bal = u'{}'.format(get_bal.to_dict()) print (bal)
Mais je n'ai besoin que de la valeur entière / flottante de la balance. Mon code est le suivant -
{ Balance: 80 }
3 Réponses :
Parce que vous utilisez la fonction to_dict
ici:
bal = u'{}'.format(get_bal.to_dict()['Balance'])
Ceci génère un dictionnaire, vous pouvez appeler le bal
dict après comme ça:
bal['Balance']
Alternativement, faites l'appel au format (si c'est toujours le solde que vous voulez):
bal = u'{}'.format(get_bal.to_dict())
si vous obtenez bal = {'Balance': 80} puis pour obtenir l'utilisation du solde .. print (bal ['Balance'])
Vous pouvez spécifier les field_paths que vous souhaitez renvoyer dans l'instantané avec db.collection (). document (). get ()
en passant field_paths = {}
XXX
Ceci retournera juste le solde dans un dictionnaire:
80
Je trouve le get () plus facile à lire. Donc, si vous ne voulez que le fichier int.
bal = users_ref.get(field_paths={'Balance'}).to_dict().get('Balance')
ou
bal = get_bal.get('Balance')
retournera
{ Balance: 80 }