TypeError:“Reference”对象不是iterab

2024-09-28 22:19:31 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮我吗?

我想从Firebase实时数据库中检索数据

我的主.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())

我收到这样的错误信息

^{pr2}$

我只是用Python学习Firebase。 希望您能帮忙,谢谢:)


Tags: 数据frompyimportref数据库dbadmin
2条回答

这个答案是为了帮助您将来自己调试这些错误。:) 这个错误告诉你你有一个“TypeError”,你应该做的第一件事就是通过做print(type(ref))来检查ref的类型,这是一个iterable吗?很可能没有,这就是为什么你会得到错误。下一步应该是在线检查文档或本地检查ref提供的函数。您可以通过启动一个新的shell,在for循环和dir(ref)之前输入所有命令。你会看到各种各样的函数,其中哪一个似乎是最合法的名字,可以“得到”你的数据?get当然。给你。:)

根据您的代码,您正试图打印数据库中/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)

相关问题 更多 >