当前位置: 首页 > 知识库问答 >
问题:

Firestore文档与Python合并

师俊健
2023-03-14

我需要使用set()和{mer: true}将文档推送到我的Firebase FiRecovery数据库。我不能使用update(),因为我不能保证文档事先存在。

如果我使用角度

import { AngularFirestore } from '@angular/fire/firestore';

constructor(private firestore: AngularFirestore) {
}

insertData() {
    this.firestore.collection('officePlants').doc('docXYZ')
        .set({
            'humidity': this.humiditySensorReading,
            'temperature': this.temperatureSensorReading
        },
            { merge: true });                                                   // provides an update and creates the doc if it doesn't exist
}

我尝试在Python中做同样的事情:

from google.cloud import firestore
import firebase_admin                                   # sudo pip install firebase-admin
from firebase_admin import credentials
from firebase_admin import firestore

credentials_path = 'myServiceAccount.privateKey.json'
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = credentials_path

cred = credentials.Certificate(credentials_path)
firebase_admin.initialize_app(cred)

db = firestore.Client()
doc_ref = db.collection(u'officePlants').document('docXYZ')
doc_ref.set({
    u'humidity': humidity,
    u'temperature': temperature
}, {'merge': True})

但我得到了一个错误:

ValueError("无效的合并路径:{}". form(merge_path))ValueError:无效的合并路径: FieldPath('合并')

删除引号,{合并:真}给出错误

名称错误:未定义名称“merge”

谢谢

共有1个答案

斜烈
2023-03-14

Python版本中的语法有一些变化:

data = {
    u'humidity': humidity,
    u'temperature': temperature
}

doc_ref = db.collection(u'officePlants').document('docXYZ')
doc_ref.set(data, merge=True)
 类似资料:
  • 在我的集合的SnapshotListener中,我使用以下命令循环遍历文档: 在 for 循环中的每个文档中,让我们称之为 ,我在 Cloud Firestore 上还有另一个文档集合。我想检索内子集合中的所有文档(每个文档只有一个字符串字段)。我能够做一个来获取本身,我用它来获取字符串字段,但我不知道如何获取其子集合中的文档。

  • 我如何删除一个特定的文档中的一个集合在fiRecovery使用反应? 我在这里和谷歌上看了看,但我没有发现任何内在相关的东西。 我只是设法从我的集合中删除索引[0]的文档。 这状态idDoc接收所有id文档。 如果我只是传递. doc(idDoc),我会得到以下错误: Firebase Error: Function Collection Reference.doc()要求它的第一个参数是非空字符

  • 我正在尝试与Firebase建立聊天- 我将noSQL数据库的结构如下: 我有一个名为Chats的集合,在那个集合中我有文档,文档的名称代表了2个用户之间的关系哈希也存储在我的SQL数据库中,我的想法是我会用这个作为标识符。 在每个文档中,都有一个名为“对话”的集合,其中将包含两个用户之间的所有聊天。 如果我监听的文档在第一个集合“chats”中有一个特定的id,如果我更改了“timestamp”

  • 为了查询子集合和父文档,我对firest的文档及其最佳实践有一些问题。我试图使用Typecript在我的Firebase函数中进行查询。 DB: ├── 用户(集合) │ └── 用户(ID为的文档) │ │ └── 计划(子集合) 我有一个数组中的用户ID列表,我需要从用户文档和当前文档的子集合计划中收集信息。 但是如何从用户文档和子集合(计划)文档(当前)中获取数据,我不知道在场景中最有效的查

  • 您好,我是firebase firestore的新手,无法将对象直接添加到集合中查看图像错误结果和预期结果 尝试 它在余额集合下创建一个新文档,但我需要它的Object值直接在余额集合中

  • 我有文档,其中包含子集合。现在,我想获取子集合中至少有一项的所有项目。这可能吗? 类似于: < code>getDocs(collection(getDB()," Projects)),其中(" Items.size ","