2017-01-18 5 views
1

Firebaseに問題があります。 私はエクスプレスではなく、クライアント上のSDKを初期化しています。つまり、Node.jsの(クライアント)を使用しようとしています:Firebase/Node.jsにグローバルにログされたユーザ

// initializing Firebase Node.js (Client) 
const configFb = { 
    apiKey: "key", 
    authDomain: "xxx.firebaseapp.com", 
    databaseURL: "https://xxxx.firebaseio.com", 
    storageBucket: "xxxx.appspot.com" 
}; 
firebase.initializeApp(configFb); 

をそして私はまた、SDK管理を使用しています。 問題は次のとおりです。誰かがログインすると、このユーザーだけがログに記録されます。ここでアプリを開くと、彼のアカウントで記録されます。ログアウトすると、このユーザーもログアウトされます。

私は間違っていますか?

ありがとうございます!

答えて

2

Node.jsクライアントSDKはこのために設計されていません。現在のところ、セッションはメモリ内に残っています。ユーザーがサインインしたら、独自のトークンを発行してクライアントに返すか、またはクッキーに設定する必要があります。そのユーザーをサインアウトします。将来のリクエストでは、作成したクッキーまたはトークンがチェックされます。これは、セッションが無効になり、ここでその能力を失う可能性があるため、単純な答えです。理想的には、クライアントSDKをブラウザやアプリケーションで使用することをお勧めします。

+0

ありがとうございます!ええ、私はそれを理解していましたが、別の方法かもしれないかどうかを確かめることにしました。なぜなら、私がクライアントで認証すると、クライアント上のすべてのデータベース管理を行う必要があるからです。そして私は知らない、それは私にはたくさんの奇妙な音がする...これに関する任意のヒント? しかし、私が非常に奇妙なことに気付くのは、firebase docsの "Reference"セクションで、クライアントSDKの使用を見つけることができるということです。その後、何がポイントですか? –

+0

Auth node.jsクライアントSDKは、node.jsで構築されたデスクトップアプリケーションの方が便利ですその場合、一度に1人のユーザーしかサインインしません。 – bojeil

+0

他の質問については、通常、データベースはクライアント上でも(サーバーレスで)実行されます。これはそのために最適化されています。だから、あなたはクライアント側で物事を維持することによって多くを得る。 – bojeil

関連する問題