我正在将python和firebase一起使用,并且有一个表,我需要更新字段中具有特定值的所有项目,我发现了如何查询具有该值here和{ {3}}
现在,我需要更新我得到的所有物品。
我想做的是使用单个查询执行单个操作,该操作将使用where查询找到正确的项目,并将某个字段更新为某个值,我需要该功能以便保持一些数据一致。
谢谢
答案 0 :(得分:1)
可以这样做,但是需要更多步骤:
# the usual preparation
import firebase_admin
from firebase_admin import credentials, firestore
databaseURL = {'databaseURL': "https://<YOUR-DB>.firebaseio.com"}
cred = credentials.Certificate("<YOUR-SERVICE-KEY>.json")
firebase_admin.initialize_app(cred, databaseURL)
database = firestore.client()
col_ref = database.collection('<YOUR-COLLECTION>')
# Query generator for the documents; get all people named Pepe
results = col_ref.where('name', '==', 'Pepe').get()
# Update Pepe to José
field_updates = {"name": "José"}
for item in results:
doc = col_ref.document(item.id)
doc.update(field_updates)
(我使用Cloud Firestore,在实时数据库中可能有所不同)
答案 1 :(得分:0)
您可以遍历查询并在每次迭代中找到 DocumentReference。
db = firestore.client()
a= request_json['message']['a']
b= request_json['message']['b']
ref = db.collection('doc').where(a'', u'==', u'a').stream()
for i in ref:
i.reference.update({"c":"c"}) # get the document reference and use it to update\delete ...