簡體   English   中英

我正在嘗試使用 python 僅獲取 firestore 中字段的值,但它返回一個鍵值對

[英]I am trying to get only the value of a field in firestore using python but it returns a key value pair instead

我正在將我的應用程序與 cloude firestore 鏈接起來,我正在使用 python,我需要檢索值“Balance”字段以檢查它是否有效。 但是當我嘗試檢索它時,我得到了這樣的輸出

{ Balance: 80 }

但我只需要余額的整數/浮點值。 我的代碼如下-

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)

因為您在這里使用to_dict函數:

bal = u'{}'.format(get_bal.to_dict())

這是生成一個字典,你可以像這樣調用bal dict:

bal['Balance']

或者,以以下格式進行調用(如果它始終是您想要的平衡):

bal = u'{}'.format(get_bal.to_dict()['Balance'])

您可以使用db.collection().document().get()通過傳遞field_paths={}來指定要在快照中返回的field_paths={}

get_bal = users_ref.get(field_paths={'Balance'}).to_dict()

這將僅返回字典中的余額:

{ Balance: 80 }

我發現 get() 更容易閱讀。 所以如果你只想要 int.

bal = get_bal.get('Balance')

或者

bal = users_ref.get(field_paths={'Balance'}).to_dict().get('Balance')

將返回

80

如果你得到 bal = { 'Balance': 80 } 那么為了得到平衡使用 .. print(bal['Balance'])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM