Добавление данных в Firebase от нажатия кнопки RaspberryPi - PullRequest
0 голосов
/ 01 ноября 2019

Как видно из заголовка, я пытаюсь добавить данные в мой облачный пожарный магазин нажатием одной кнопки на моем кнопочном кликере Raspberry Pi с использованием Python. Мне удалось заставить его работать, но если я нажму кнопку несколько раз, это не добавит данные в мою базу данных снова, если снова не выполнить мой сценарий повторно. Это означает, что если я нажму кнопку один раз, она добавится в базу данных, но если я нажму снова, она ничего не добавит, но появится «добавить».

new_doc = db.collection(u'report').document()

#YELLOW 
greenBtn = Button(17) #Using gpiozero library
greenLED = LED(13)


def add():
    greenLED.on()
    try:
        new_doc.set({u'name': u'report two'})
        print("add")
    except:
        print("fail")

greenBtn.when_pressed = add
greenBtn.when_released = greenLED.off

1 Ответ

1 голос
/ 01 ноября 2019

Вы создаете новый документ при первом запуске скрипта. Затем, когда пользователь нажимает кнопку, вы продолжаете обновлять этот же документ. Таким образом, хотя каждое нажатие кнопки вызывает запись, вы не видите последующих записей, поскольку вы все время записываете одно и то же значение в один и тот же документ.

Два решения:

  1. Каждый раз пишите разные значения
  2. Каждый раз пишите в разные документы.

Поскольку вы, похоже, ожидаете новый документ, я покажу, как это сделать:

#YELLOW 
greenBtn = Button(17) #Using gpiozero library
greenLED = LED(13)


def add():
    greenLED.on()
    new_doc = db.collection(u'report').document()

    try:
        new_doc.set({u'name': u'report two'})

Таким образом, создание нового документа теперь происходит каждый раз, когда пользователь нажимает кнопку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...