正如标题所述,我正在尝试通过使用Python从树莓派pi按钮单击器中单击按钮,将数据添加到云Firestore中。我设法使其正常工作,但是如果我多次单击按钮,除非再次运行脚本,否则不会将数据再次添加到数据库中。这意味着如果我单击一次按钮,它将添加到数据库中,但是如果再次单击它,则不会添加任何内容,但会出现“添加”。
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
答案 0 :(得分:1)
您是在脚本第一次运行时创建一个新文档。然后,当用户按下按钮时,您将继续更新同一文档。因此,尽管每次单击按钮都会导致写入,但您不会看到后续写入,因为您一直在向同一文档写入相同的值。
两种解决方案:
由于您似乎希望获得一个新文档,因此我将说明如何做到这一点:
#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'})
因此,每次用户按下按钮时,都会创建新文档。