2016-05-19 20 views
11

ElectronでFirebaseを使用しようとしています。電子ページはローカルにホストされており、hostnameを持たないため、Webページ上と同じようにインストールすると動作しません。これは私が得ているエラーです...電子ベースでFirebaseを使用する

Uncaught Error: This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console. 

空の(またはワイルドカードの)認可されたドメインをFirebaseコンソールに追加することができませんので、私は止まっています。誰かがこれを回避する方法のアイデアを持っていますか?

編集:ここでは私が使用しているコードはだ、これが最善の解決策ですが、回避策である場合、私は知らないだけで、標準的な定型、余分な何も...

<script src="https://www.gstatic.com/firebasejs/live/3.0/firebase.js"></script> 
<script> 
    var config = { 
    apiKey: "AIzaSyBvmmPB0_Oddc-02cUj3Ntt3wi8jSxxxx", 
    authDomain: "xxxxx-d24ad.firebaseapp.com", 
    databaseURL: "https://xxxxx-d24ad.firebaseio.com", 
    storageBucket: "", 
    }; 
    firebase.initializeApp(config); 
</script> 
+0

あなたはコードスニペットを投稿してくださいことはできますか?私はホスト名が必要なFirebaseを認識していません。 – Charlie

+0

@Charlie、コードスニペットを追加しました。 – DaveJ

+0

@Daveyjoe - ちょうどこれに壁を打って、電子をローカルホストから提供する方法があれば知っていますか? – user1787531

答えて

5

は今のところ、あなたはあなたの設定からauthDomainラインを削除することによって、このエラーを抑制することができます。 authDomainはAuth signInWithPopup/signInWithRedirect操作に必要ですが、それ以外はすべて動作するはずです。

実際にsignInWithPopup/Redirectを実行しようとしたときにのみエラーをスローするライブラリのバージョンが動作しています。

+0

優秀、ありがとう! 'signInWithPopup/Redirect'がサポートされているときにあなたの答えを編集して戻すことができれば、それはすばらしいでしょう。 – DaveJ

+0

これに関するアップデートはありますか? – DaveJ

1

です。

シンプル特急サーバー

"server.js" あなたmain.js(電子メイン-JS-ファイル)で

var express = require('express'); 
var http = require('http'); 
var path = require('path'); 

var appServer = express(); 
appServer.use(express.static(path.join(__dirname, ''))); 

appServer.get('*', (req, res) => { 
    res.sendFile(__dirname + 'index.html'); 
}); 

http.createServer(appServer).listen(3007, function() { 
    console.log('Express server listening on port'); 
}); 

上でファイルserver.jsを作成しますmain.jsの先頭がノードサーバを起動します

require('./server'); 

「win.loadURL」

win.loadURL('http://localhost:3007'); 

私はあなたのプロジェクトをフォークして実装しましたが、firebaseからのエラーはなくなりましたが、jQueryは定義されていません。

https://github.com/diegoddox/sad-electron-firebase-error

0

手動サインフローとfirebase auth signInWithCredentialメソッドを使用すると、firebase authのGitHub、Twitter、Facebook、Google Providerを電子で使用できます。

https://firebase.google.com/docs/auth/web/github-auth#handle_the_sign-in_flow_manually

私は、これらのケースのために有益なライブラリーを作成しました。

https://github.com/mironal/electron-oauth-helper#firebase-auth-integration

// Github manually flow example. 

const { OAuth2Provider } = require("electron-oauth-helper") 

const config = { /* oauth config. please see example/main/config.example.js. */} 
const provider = new OAuth2Provider(config) 
provider.perform() 
    .then(resp => { 
    const query = querystring.parse(resp) 
    const credential = firebase.auth.GithubAuthProvider.credential(query.access_token) 
    firebase.auth().signInWithCredential(credential) 
    .then(user => { 
     console.log(user) 
    }) 
    .catch(error => console.error(error)) 
    }) 
    .catch(error => console.error(error)) 
関連する問題