firebase-admin-python icon indicating copy to clipboard operation
firebase-admin-python copied to clipboard

Unable to use firestore.SERVER_TIMESTAMP

Open mirceatlx opened this issue 2 years ago • 1 comments

Environment

  • Operating System version: Windows 10 Pro 10.0.19045 Build 19045
  • Firebase SDK version: 6.1.0
  • Firebase Product: Firestore (auth, database, storage, etc)
  • Python version: 3.10.8
  • Pip version: 22.3.1

Steps to reproduce:

Trying to set the timestamp when creating or updating a Firestore with firestore.SERVER_TIMESTAMP but go error message TypeError: Not a cmessage.

Relevant Code:

from firebase_admin import credentials, firestore

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

client = firestore.client()
collection = client.collection('test')
u = uuid.uuid4()
collection.document(str(u)).set({
            'id': str(u),
            'timestamp': firestore.SERVER_TIMESTAMP
        })

Full error message:

"/opt/homebrew/Caskroom/miniforge/base/envs/apa/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/apa/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/Users/hiro/Documents/apa/src/backend/pipeline/pipeline.py", line 65, in run
    self.collection.document(str(self.uuid)).update({
  File "/opt/homebrew/Caskroom/miniforge/base/envs/apa/lib/python3.10/site-packages/google/cloud/firestore_v1/document.py", line 324, in update
    batch, kwargs = self._prep_update(field_updates, option, retry, timeout)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/apa/lib/python3.10/site-packages/google/cloud/firestore_v1/base_document.py", line 239, in _prep_update
    batch.update(self, field_updates, option=option)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/apa/lib/python3.10/site-packages/google/cloud/firestore_v1/base_batch.py", line 141, in update
    write_pbs = _helpers.pbs_for_update(
  File "/opt/homebrew/Caskroom/miniforge/base/envs/apa/lib/python3.10/site-packages/google/cloud/firestore_v1/_helpers.py", line 941, in pbs_for_update
    update_pb.update_transforms.extend(field_transform_pbs)
TypeError: Not a cmessage

Pip list environment

absl-py                  1.4.0
anyio                    3.6.2
appnope                  0.1.3
argon2-cffi              21.3.0
argon2-cffi-bindings     21.2.0
arrow                    1.2.3
astroid                  2.14.2
asttokens                2.2.1
astunparse               1.6.3
attrs                    22.2.0
backcall                 0.2.0
beautifulsoup4           4.11.1
bleach                   5.0.1
CacheControl             0.12.11
cached-property          1.5.2
cachetools               5.2.1
certifi                  2022.12.7
cffi                     1.15.1
charset-normalizer       3.0.1
comm                     0.1.2
contourpy                1.0.7
cryptography             39.0.2
cycler                   0.11.0
Cython                   0.29.33
debugpy                  1.6.5
decorator                5.1.1
defusedxml               0.7.1
dill                     0.3.6
entrypoints              0.4
exceptiongroup           1.1.0
executing                1.2.0
fastjsonschema           2.16.2
firebase-admin           6.1.0
flatbuffers              23.1.4
fonttools                4.38.0
fqdn                     1.5.1
gast                     0.4.0
google-api-core          2.11.0
google-api-python-client 2.80.0
google-auth              2.16.0
google-auth-httplib2     0.1.0
google-auth-oauthlib     0.4.6
google-cloud-core        2.3.2
google-cloud-firestore   2.10.0
google-cloud-storage     2.7.0
google-crc32c            1.5.0
google-pasta             0.2.0
google-resumable-media   2.4.1
googleapis-common-protos 1.58.0
grpcio                   1.51.3
grpcio-status            1.51.3
h5py                     3.6.0
httplib2                 0.21.0
idna                     3.4
iniconfig                2.0.0
ipykernel                6.20.2
ipython                  8.8.0
ipython-genutils         0.2.0
isoduration              20.11.0
isort                    5.12.0
jedi                     0.18.2
Jinja2                   3.1.2
jsonpointer              2.3
jsonschema               4.17.3
jupyter_client           7.4.9
jupyter_core             5.1.3
jupyter-events           0.6.3
jupyter_server           2.1.0
jupyter_server_terminals 0.4.4
jupyterlab-pygments      0.2.2
keras                    2.11.0
kiwisolver               1.4.4
lazy-object-proxy        1.9.0
libclang                 15.0.6.1
Markdown                 3.4.1
MarkupSafe               2.1.2
matplotlib               3.6.2
matplotlib-inline        0.1.6
mccabe                   0.7.0
mistune                  2.0.4
msgpack                  1.0.4
mypy                     1.0.1
mypy-extensions          1.0.0
nbclassic                0.4.8
nbclient                 0.7.2
nbconvert                7.2.8
nbformat                 5.7.3
nest-asyncio             1.5.6
notebook                 6.5.2
notebook_shim            0.2.2
numpy                    1.24.1
oauthlib                 3.2.2
opencv-python            4.7.0.68
opt-einsum               3.3.0
packaging                23.0
pandas                   1.5.2
pandocfilters            1.5.0
parso                    0.8.3
pexpect                  4.8.0
pickleshare              0.7.5
Pillow                   9.4.0
pip                      22.3.1
platformdirs             2.6.2
pluggy                   1.0.0
prometheus-client        0.15.0
prompt-toolkit           3.0.36
proto-plus               1.22.2
protobuf                 4.22.0
psutil                   5.9.4
ptyprocess               0.7.0
pure-eval                0.2.2
pyasn1                   0.4.8
pyasn1-modules           0.2.8
pycparser                2.21
pydash                   6.0.2
Pygments                 2.14.0
PyJWT                    2.6.0
pylint                   2.16.2
pyobjc-core              9.0.1
pyobjc-framework-Cocoa   9.0.1
pyparsing                3.0.9
pyrsistent               0.19.3
pytest                   7.2.1
python-dateutil          2.8.2
python-json-logger       2.0.4
pytz                     2022.7.1
PyYAML                   6.0
pyzmq                    25.0.0
requests                 2.28.2
requests-oauthlib        1.3.1
rfc3339-validator        0.1.4
rfc3986-validator        0.1.1
rsa                      4.9
screeninfo               0.8.1
Send2Trash               1.8.0
setuptools               66.1.0
six                      1.16.0
sniffio                  1.3.0
soupsieve                2.3.2.post1
stack-data               0.6.2
tensorboard              2.11.2
tensorboard-data-server  0.6.1
tensorboard-plugin-wit   1.8.1
tensorflow-estimator     2.11.0
tensorflow-macos         2.11.0
termcolor                2.2.0
terminado                0.17.1
tinycss2                 1.2.1
tomli                    2.0.1
tomlkit                  0.11.6
tornado                  6.2
traitlets                5.8.1
typing_extensions        4.4.0
uri-template             1.2.0
uritemplate              4.1.1
urllib3                  1.26.14
wcwidth                  0.2.6
webcolors                1.12
webencodings             0.5.1
websocket-client         1.4.2
Werkzeug                 2.2.2
wheel                    0.38.4
wrapt                    1.14.1

mirceatlx avatar Mar 11 '23 19:03 mirceatlx

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

google-oss-bot avatar Mar 11 '23 19:03 google-oss-bot