Чтобы добавить карту в Firestore, сделайте c, используя Python - PullRequest
0 голосов
/ 30 января 2020

Итак, я пытаюсь добавить map в существующий документ в Firestore, в который уже записаны данные. Я узнал, как добавлять данные, не перезаписывая существующие данные, используя merge, однако мои данные зарегистрированы как string.

. Вот фрагмент кода, который должен обработать эти данные sh. :

def sendCustomer(self):
    db.collection("parameters").document("new_mlt_ben").set(self.__dict__, merge=True)

Используется для пользовательского объекта Customers, который имеет только один параметр: name

class Customers(object):
    def __init__(self):
        self.name = [] #When I push the obj in the doc, name contain only one name,
                       #it is set as a list because I use it as a list on another function that get all
                       #map from the "new_mlt_ben" wich are customers name on that context

Вот фрагмент кода, где я фактически использую функцию :

@app.route("/customer", methods=['GET', 'POST'])
def addCustomer():
    form = AjouterCustomer() #WTForm generated form
    if form.validate_on_submit():
        customer = Customers() #I create an empty customer obj
        customer.setName(form.name.data) #I set the name with the user input
        try:
            customer.sendCustomer() #I push the obj
            flash("Add with success", 'success') #Woohoo it worked
        except ZeroDivisionError:
            flash("Bip bap boop it's broken", 'danger') #Woopsi
        return redirect(url_for('ajouter'))
    return render_template('ajouter.html', title='Ajouter customer', form=form)

TL; DR

Я хочу добавить customer.name внутри do c new_mlt_ben как map, но это зарегистрирован как string

Спасибо за чтение!

1 Ответ

0 голосов
/ 30 января 2020

Итак, я узнал, как это сделать, вот решение для тех, кто хотел бы знать:

def sendCustomer(self):
    data = {
        self.name: {}
    }
    db.collection("parameters").document("new_mlt_ben").set(data, merge=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...