有人可以帮助我吗?
我想从 Firebase实时数据库
检索数据我的 main.py :
import firebase_admin
from firebase_admin import credentials
from firebase_admin import db
cred = credentials.Certificate ("serviceAccountKey.json")
firebase_admin.initialize_app (cred, {"databaseURL": "https://myDatabase.firebaseio.com/"})
ref = db.reference ("user")
for u in ref:
print (ref.get())
我收到这样的错误消息
Traceback (most recent call last):
File "main.py", line 10, in <module>
for u in ref:
TypeError: 'Reference' object is not iterable
我只是通过使用Python学习Firebase。 希望您能提供帮助,谢谢:)
答案 0 :(得分:2)
根据您的代码,您试图在数据库中的/user
键下打印每个用户的数据。代码db.reference("user")
返回一个对象,该对象引用数据库中的某个位置并且不保存任何数据。要获取每个用户的列表,您可以使用以下代码的变体:
ref = db.reference("user")
data = ref.get() # get data from db
for u in data # iterate children of data
print(u)
答案 1 :(得分:2)
此答案是为了帮助您将来自己调试此类错误。 :)
错误告诉您您有一个“ TypeError”,您可能应该做的第一件事是通过执行print(type(ref))
检查引用的类型,这是可迭代的吗?极有可能,这就是为什么您会收到错误消息。下一步应该是在线检查文档,还是在本地检查ref
提供的功能。您可以通过启动一个新的Shell,在for循环和dir(ref)
之前键入所有命令来完成此操作。您将在此处看到各种各样的功能,其中似乎最有名的一个功能可以“获取”数据? get
当然。妳去:)