Python 从dev_appserver连接到Firebase时出错:VerifiedHTTPSConnection对象没有属性\u tunnel\u host

Python 从dev_appserver连接到Firebase时出错:VerifiedHTTPSConnection对象没有属性\u tunnel\u host,python,firebase,google-app-engine,google-cloud-platform,Python,Firebase,Google App Engine,Google Cloud Platform,我正在本地运行一个服务,我打算将它作为一个服务在GCP中运行。我正在使用服务帐户json文件对Firebase进行身份验证 from firebase_admin import credentials from firebase_admin import db cred = credentials.Certificate('./firebase-service-account.json') firebase_admin.initialize_app(cred, { 'databaseU

我正在本地运行一个服务,我打算将它作为一个服务在GCP中运行。我正在使用服务帐户json文件对Firebase进行身份验证

from firebase_admin import credentials
from firebase_admin import db

cred = credentials.Certificate('./firebase-service-account.json')
firebase_admin.initialize_app(cred, {
    'databaseURL': 'https://XXXXXXXX.firebaseio.com/'
})
。。。 ref.child(msg_id).set(数据)

但是,当我尝试写入Firebase时,我看到以下错误:

AttributeError: 'VerifiedHTTPSConnection' object has no attribute 
'_tunnel_host'
我将在下面粘贴stacktrace,以防它提供一些额外的清晰度:

File "/Users/karthig/Documents/coding/nocservice/query.py", line 42, in publish_results
ref.child(msg_id).set(data)
File "/Users/karthig/Documents/coding/nocservice/lib/firebase_admin/db.py", line 262, in set
self._client.request('put', self._add_suffix(), json=value, params='print=silent')
File "/Users/karthig/Documents/coding/nocservice/lib/firebase_admin/db.py", line 882, in request
return super(_Client, self).request(method, url, **kwargs)
File "/Users/karthig/Documents/coding/nocservice/lib/firebase_admin/_http_client.py", line 84, in request
resp = self._session.request(method, self._base_url + url, **kwargs)
File "/Users/karthig/Documents/coding/nocservice/lib/google/auth/transport/requests.py", line 198, in request
self._auth_request, method, url, request_headers)
File "/Users/karthig/Documents/coding/nocservice/lib/google/auth/credentials.py", line 122, in before_request
self.refresh(request)
File "/Users/karthig/Documents/coding/nocservice/lib/google/oauth2/service_account.py", line 322, in refresh
request, self._token_uri, assertion)
File "/Users/karthig/Documents/coding/nocservice/lib/google/oauth2/_client.py", line 145, in jwt_grant
response_data = _token_endpoint_request(request, token_uri, body)
File "/Users/karthig/Documents/coding/nocservice/lib/google/oauth2/_client.py", line 106, in _token_endpoint_request
method='POST', url=token_uri, headers=headers, body=body)
File "/Users/karthig/Documents/coding/nocservice/lib/google/auth/transport/requests.py", line 120, in __call__
**kwargs)
File "/Users/karthig/Documents/coding/nocservice/lib/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/Users/karthig/Documents/coding/nocservice/lib/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/Users/karthig/Documents/coding/nocservice/lib/requests/adapters.py", line 449, in send
timeout=timeout
File "/Users/karthig/Documents/coding/nocservice/lib/urllib3/connectionpool.py", line 600, in urlopen
chunked=chunked)
File "/Users/karthig/Documents/coding/nocservice/lib/urllib3/connectionpool.py", line 343, in _make_request
self._validate_conn(conn)
File "/Users/karthig/Documents/coding/nocservice/lib/urllib3/connectionpool.py", line 839, in _validate_conn
conn.connect()
File "/Users/karthig/Documents/coding/nocservice/lib/urllib3/connection.py", line 304, in connect
if self._tunnel_host:
AttributeError: 'VerifiedHTTPSConnection' object has no attribute '_tunnel_host'
ERROR    2019-01-03 20:02:00,987 worker.py:45] An error occurred during a request.
ERROR    2019-01-03 20:02:00,988 worker.py:46] 'VerifiedHTTPSConnection' object has no attribute '_tunnel_host'

这已经在的评论部分得到了回答,但为了更清楚,只需在应用程序初始化的地方添加以下行:

from requests_toolbelt.adapters import appengine
appengine.monkeypatch()

就这样。有关更多信息,请参阅。

这已在的“评论”部分中得到回答,但为了更清楚,只需在应用程序初始化的位置添加以下行:

from requests_toolbelt.adapters import appengine
appengine.monkeypatch()

就这样。有关更多信息,请参阅。

谢谢,约翰。我刚刚找到了,打算把它贴出来。验证了它的工作原理:)用新代码发布您的解决方案。这会帮助别人的。谢谢你,约翰。我刚刚找到了,打算把它贴出来。验证了它的工作原理:)用新代码发布您的解决方案。这将帮助其他人。