Python firestore 无法识别子集合上的 set 函数

问题描述 投票:0回答:1

我有一个连接到 firebase firestore 的不和谐机器人。我可以获取/设置集合和文档的数据,但当我尝试设置时却无法获取/设置

subcollections

这是我的代码的一部分:

import discord
from discord import app_commands
from discord.ext import commands
from firebase_admin import firestore
db = firestore.client()

class Upload(commands.Cog):
    def __init__(self, bot: commands.Bot):
        self.bot = bot

@app_commands.command(name='upload', description="desc")
    async def upload(self, interaction: discord.Interaction, name: str, file: discord.Attachment):
        
        print(file.url)
        print(interaction.guild.id)
        db_server = db.collection("servers").document(str(interaction.guild.id))
        db_drop_items = db_server.collection("drop_items")
        db_drop_items.set({"name" : name, "image": file.url}, merge=True)
        
        await interaction.response.send_message('Answered')

这里的问题是

db_drop_items.set
未被识别为 firestore 方法,并在执行命令时返回此错误:

enter image description here

但是当我尝试将其指向主集合时,它可以工作并被添加到数据库中。

db_server = db.collection("servers").document(str(interaction.guild.id))
# db_drop_items = db_server.collection("drop_items")
db_server.set({"name" : name, "image": file.url}, merge=True)

enter image description here

enter image description here

python firebase google-cloud-firestore discord
1个回答
0
投票

Python Firestore 无法识别子集合上的 set 函数。

这是预期的行为,因为 set() 函数存在于 DocumentReference 中,而 not 位于 CollectionReference 类中。因此,如果您想使用

CollectionReference
对象添加一些数据,那么您必须调用 add() 函数,其中:

使用提供的数据在 Firestore 数据库中创建文档。

© www.soinside.com 2019 - 2024. All rights reserved.