AttributeError:“ CollectionReference”对象没有属性“ stream”

时间:2020-05-16 12:17:29

标签: python flask google-cloud-firestore

我正在从Firestore中读取信息。因此,我遵循了here中的示例。这是我的代码。这是一个Flask应用程序,它调用了Firestore客户端。

@menuapi_routes.route("/api/menu")
def get_menus():
    menu_items = get_menu_items()
    retval = []
    for item in menu_items.stream():
        retval.append(u' {} => {}'.format(item.id, item.to_dict()))
    return json.dumps(retval)

被调用的代码是。

def get_menu_items():
    db = firestore.Client()
    doc_ref = db.collection(u'menus')
    return doc_ref

我得到的错误是

127.0.0.1 - - [16/May/2020 22:09:24] "GET / HTTP/1.1" 404 -
[2020-05-16 22:09:34,236] ERROR in app: Exception on /api/menu [GET]
Traceback (most recent call last):
  File "\venv\lib\site-packages\flask\app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "\venv\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "\venv\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "\venv\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "\venv\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "\venv\lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "\app\api\menu\menu.py", line 13, in get_menus
    for item in menu_items.stream():
AttributeError: 'CollectionReference' object has no attribute 'stream'
Exception on /api/menu [GET]
Traceback (most recent call last):
  File "\venv\lib\site-packages\flask\app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "\venv\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "\venv\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "\venv\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "\venv\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "\venv\lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "\app\api\menu\menu.py", line 13, in get_menus
    for item in menu_items.stream():
AttributeError: 'CollectionReference' object has no attribute 'stream'
Exception on /api/menu [GET]
Traceback (most recent call last):
  File "\venv\lib\site-packages\flask\app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "\venv\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "\venv\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "\venv\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "\venv\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "\venv\lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "\app\api\menu\menu.py", line 13, in get_menus
    for item in menu_items.stream():
AttributeError: 'CollectionReference' object has no attribute 'stream'
127.0.0.1 - - [16/May/2020 22:09:34] "GET /api/menu HTTP/1.1" 500 -

0 个答案:

没有答案