Я хочу обновить базу данных своего пожарного магазина, создав объект ArrayUnion.
К сожалению, мой метод обновления выдает следующую ошибку:
TypeError: ('Cannot convert to a Firestore Value', <google.cloud.firestore_v1beta1.transforms.ArrayUnion object at 0x04CDEF90>,
'Invalid type', <class 'google.cloud.firestore_v1beta1.transforms.ArrayUnion'>)
Мой подход основан на официальных документах https://github.com/googleapis/google-cloud-python/blob/master/firestore/google/cloud/firestore_v1beta1/_helpers.py
Эта реализация работала для меня в прошлом, но в течение нескольких дней я не могу добиться успеха.
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
from firebase_admin import db
from google.cloud.firestore_v1beta1 import ArrayUnion, ArrayRemove
class TwitFire:
def __init__(self):
# Use a service account
cred = credentials.Certificate('./credentials')
firebase_admin.initialize_app(cred)
self.client = firestore.client()
def getRef(self, collectionName, documentName):
return self.client.collection(collectionName).document(documentName)
def set(self, ref, entry):
return ref.set(entry)
def update(self, ref, entry):
return ref.update(entry)
def updateTweets(self, ref, entry):
return ref.update({u'retweets': ArrayUnion([entry])})
def create(self, ref, entry):
return ref.create(entry)