Error when connecting to Firebase from dev_appserver: VerifiedHTTPSConnection object has no attribute _tunnel_host

六月ゝ 毕业季﹏ 提交于 2019-12-13 06:31:17

问题


I am running a service locally that I intend to run in GCP as a service. I'm authenticating to Firebase using a service account json file.

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(data)

However, when I try to write to Firebase, I see the following error:

AttributeError: 'VerifiedHTTPSConnection' object has no attribute 
'_tunnel_host'

I'm going to paste the stacktrace below in case it can provide some additional clarity:

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'

回答1:


This has already been answered in the comments section of the answer John posted above, but to make it more clear, simply add the following lines where you app gets initialized:

from requests_toolbelt.adapters import appengine
appengine.monkeypatch()

That's it. See here for more information.



来源:https://stackoverflow.com/questions/54029272/error-when-connecting-to-firebase-from-dev-appserver-verifiedhttpsconnection-ob

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!