小编Che*_*ska的帖子

尝试使用 ArrayUnion 时,Fire 给出“TypeError: Expected a message object, but getting field_path”错误

我正在尝试将 firebase 与 python 一起使用。我已经连接到数据库并在方案中如下:

import firebase_admin
from firebase_admin import credentials, db, firestore

# Initialize connection to firebase
cred = credentials.Certificate("serviceAccountKey.json")
app_options = {
    'databaseURL': '...'}
firebase_admin.initialize_app(cred)
db = firestore.client()
Run Code Online (Sandbox Code Playgroud)

目前数据库有两种类型的文档,当我们将它们转换为字典时,我们得到以下内容:

Admin: {'users': [], 'email': '...', 'first_name': '...', 'last_name': '...'}
User: {'email': '...', 'onboarding_form': 'first_name': '...', 'last_name': '...'}
Run Code Online (Sandbox Code Playgroud)

我想将用户的引用添加到用户数组中,该数组是管理字段。为此,我有以下代码:

    user_id = get_user_id(user_last_name, user_first_name)
    admin_id = get_admin_id(admin_last_name, admin_first_name)

    user_ref = db.collection(u'user').document(user_id)
    admin_ref = db.collection(u'admin').document(admin_id)

    admin_ref.update(
        {u'users': firestore.ArrayUnion([user_ref])})
Run Code Online (Sandbox Code Playgroud)

但代码不会插入对用户数组的引用。我收到以下错误:

Traceback (most recent call last):
  File "/home/primrose/work/BE/db_api.py", line 109, in <module>
    test_run()
  File …
Run Code Online (Sandbox Code Playgroud)

python firebase google-cloud-firestore

2
推荐指数
1
解决办法
464
查看次数

标签 统计

firebase ×1

google-cloud-firestore ×1

python ×1