我正在使用新的Python3.7选项编写一个简单的Google Cloud Function以进行学习,我想将一些数据读/写到Firebase Realtime db。
我找到了一些可以使用Firestore的信息,但是现在我需要使用实时数据库。
# global
import firebase_admin
from firebase_admin import db
# from firebase_admin import firestore
default_app = firebase_admin.initialize_app()
def check_prices_updates(request):
"""Responds to any HTTP request.
Args:
request (flask.Request): HTTP request object.
Returns:
The response text or any set of values that can be turned into a
Response object using
make_response
"""
collection = 'pricelist'
mybase = db.reference(collection)
....[other code]
return "OK"
这是我的代码的摘录,文档说initialize_app()
必须留空以收集项目的默认凭据。
我调用db.reference(collection)的行给我一个例外:
ValueError:无效的databaseURL选项:“无”。 databaseURL必须是非空的URL字符串。
,就像配置参数未显示请求的键“ databaseURL”一样。以Firestore为例,在从firebase_admin导入后,我可以调用firestore.client()
,在requirements.txt中添加“ google-cloud-firestore”。
现在,对于Firebase,我应该解决在数据库上读写的问题吗?
PS。在我的数据库中,“。read”规则对所有人都适用,因此我对auth没问题!
更新: 睡个好觉之后,我意识到要访问实时数据库,我需要将一些选项传递给initialize_app,如下所示:
firebase_admin.initialize_app(options={'databaseURL': 'https://[PROJECT-NAME].firebaseio.com'})
欢呼