使用where查询的python firebase更新项目

时间:2019-02-27 08:05:23

标签: python database firebase

我正在将python和firebase一起使用,并且有一个表,我需要更新字段中具有特定值的所有项目,我发现了如何查询具有该值here和{ {3}}

现在,我需要更新我得到的所有物品。

我想做的是使用单个查询执行单个操作,该操作将使用where查询找到正确的项目,并将某个字段更新为某个值,我需要该功能以便保持一些数据一致。

谢谢

2 个答案:

答案 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 ...