3
我試圖使用提取API從服務工作人員查詢Firebase數據庫。但它不能按預期工作,因爲我無法正確認證。通過在服務工作人員中提取操作驗證Firebase數據庫
基本上我想要做的是從原點https://myproject.firebaseapp.com服務工作者裏面我做這樣的呼籲:
var fetchOptions = {};
fetchOptions.credentials = 'include';
var url = options.messageUrl;
var request = new Request('https://myproject.firebaseio.com/user/foobar.json', fetchOptions);
messagePromise = fetch(request).then(function(response) {
return response.json();
});
我得到這個錯誤:
Fetch API cannot load https://myproject.firebaseio.com/user/foobar.json. Response to preflight request doesn't pass access control check: Credentials flag is 'true', but the 'Access-Control-Allow-Credentials' header is ''. It must be 'true' to allow credentials. Origin 'https://myproject.firebaseapp.com' is therefore not allowed access.
任何想法一種方法來解決它?如何從SW中查詢/更新Firebase數據庫?
我讀過https://jakearchibald.com/2014/using-serviceworker-today/,其中一個問題就是這個問題,Fetch請求不發送認證。
理想情況下,能夠在SW內部使用Firebase JS API會很好,但這似乎並不奏效。
感謝您的回答,我做了您的建議,並可以成功檢索令牌,然後將其傳遞給SW,並可以成功將其存儲以供查詢。但是,當我用?token = {the_token}查詢URL時,我得到一個權限被拒絕的答案。事實上,具有相同URL和令牌的curl將返回相同的結果。我失蹤的東西?請注意,應用程序的其餘部分可以使用PolymerFire元素很好地查詢Firebase數據庫(並且我已成功登錄) –
糟糕!這就是我得到的不利用文檔刷新自己。 param實際上是'?auth ='not'?token ='。請參閱[文檔](https://firebase.google.com/docs/database/rest/retrieve-data#section-rest-reading-data-get)以獲取更多有用的信息。 –