私はfirebaseauthをelectronで動作させようとしています。私はすでにiOSとAndroidで動作していますが、デスクトップバージョンのアプリにも同じものを使用したいと思います。
私が主に試しているのはグーグルサインインです。firebaseのウェブバージョンを使用すると、ローカルホストがサインインに受け入れられないという失敗に終わります。node.jsバージョンのコードを試しましたが、取得できません。どちらかで動作します。
Google this:https://www.google.com/search?q = firebase + auth + electron
そして、あなたは私が試したすべてと私が調べたすべてのスタックオーバーフローの質問を見るでしょう。動作していると言う人もいますが、動作例は見つかりませんでした。これは失われた原因ですか、それとも誰かが私を正しい方向に向けることができますか?
多くの人が同じ問題を抱えているようですが、答えはありません。
これを機能させる1つの方法は、表示するページを提供するローカルサーバーを実行することです。次に、ElectronウィンドウでそのローカルサーバーのURLをロードします。
Firebaseライブラリは、電子ウィンドウに直接読み込まれると文句を言いますが、次のようなローカルサーバーを使用して回避できます。
import {
app,
BrowserWindow
} from 'electron'
import ex from 'express'
import path from 'path'
const express = ex()
let win
const port = 12345
const appPath = app.getAppPath()
express.use(require('express').static(path.join(appPath, '/')))
express.get('/', (_, res) => res.sendFile(path.join(appPath, '/index.html')))
express.listen(port, () => console.log('Running on ' + port))
function getWindow () {
if (win === undefined) {
// Create the browser window.
win = new BrowserWindow({
frame: false,
transparent: true,
alwaysOnTop: true,
width: 1280,
height: 768,
center: true
})
win.loadURL('http://localhost:' + port)
}
return win
}
app.on('ready', () => {
getWindow().show()
})
上記のコードは、index.js
electronを実行するときに実行するコードになります。次にindex.html
、ローカルWebサーバーを介して提供されるFirebaseWebライブラリをロードします。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>Example</title>
</head>
<body>
<script src="/__/firebase/6.3.0/firebase-app.js"></script>
<script src="/__/firebase/6.3.0/firebase-auth.js"></script>
</body>
</html>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加