使用add()方法将文档添加到Firestore时出错

时间:2019-09-25 03:03:17

标签: python firebase google-cloud-firestore firebase-admin

我正在尝试使用add()方法将文档添加到Firestore中。根据文档的add()方法,每个文档都会生成一个唯一的ID,并以任意随机顺序存储它,并且要以有序的方式存储它,我们需要将其存储到文档中的timestamp字段中。这是我的操作方式:

def add_data(message):
  message.update({u'timestamp': firestore.SERVER_TIMESTAMP})
  coll_ref.add(message)

执行上述方法时,出现错误:

TypeError: ('Cannot convert to a Firestore Value', <object object at 0x104fdebe0>, 'Invalid type', <class 'object'>)

为什么会出现此错误? firestore Python SDK中是否存在错误,如果有,则针对该问题发布了任何补丁?

1 个答案:

答案 0 :(得分:1)

以下为我工作的是最新版本的Python Admin SDK(已在REPL中验证)。

>>> import firebase_admin
>>> from firebase_admin import firestore
>>> firebase_admin.initialize_app()
<firebase_admin.App object at 0x1080c33d0>
>>> client = firestore.client()
>>> msg = {'timestamp': firestore.SERVER_TIMESTAMP}
>>> foo = client.collection('foo')
>>> foo.add(msg)
(seconds: 1569404958
nanos: 428866000
, <google.cloud.firestore_v1.document.DocumentReference object at 0x108dfc610>)

这在下面使用google-cloud-firestore的v1.4.0。检查您的库版本,导入等。