2016-11-08 6 views
0

customTokenを​​に登録する方法に関する情報はありません。初心者の開発者は、特定のユーザーがアクセスできるようにデータをソートする方法(ios-swift)を知っておくと便利です。 group1には、データベースの特定のセクションを表示できる特定のユーザーがいます。私は私のサーバーに戻ってサインイン認証情報を送信することに不安だhttps://firebase.google.com/docs/auth/ios/custom-authFirebase管理者トークンとカスタムトークンデータがサーバに渡されます

:私の場合は

は、私はから

  1. When users sign into your app, send their sign-in credentials (for example, their username and password) to your authentication server. Your server checks the credentials and returns a custom token if they are valid.

「Firebaseで認証」から、ステップ3で迷子カスタムトークンを作成して返信します。しかし、私はこれをどうやってやろうとしているのですか? Firebase Docsはどのように指定していません。私は次のコードでnode.jsでサーバーを設定している

var firebase = require('firebase'); 
var admin = require('firebase-admin'); 
var FirebaseTokenGenerator = require("firebase-token-generator"); 
var path = require('path'); 
var servAcc = '/Users/myUserName/Desktop/nodeClient/service-account.json'; 

var tokenGenerator = new FirebaseTokenGenerator("firebase-secret"); 
var token = tokenGenerator.createToken({ 
uid: "clientId", groupId: "group1", managerId:"MG1" 
}); 

    firebase.initializeApp({ 

     serviceAccount: path.resolve(__dirname, '/Users/myUserName/Desktop/nodeClient/service-account.json'), 
     databaseURL: "https://<app-name>.firebaseio.com/", 
     databaseAuthVariableOverride: { 
     uid: "clientId" 
     } 

    }) 

    admin.initializeApp({ 
     credential: admin.credential.cert(servAcc), 
     databaseURL: "https://apos-accentit.firebaseio.com/" 
    }); 

だけadmin.credential.cert(servAcc)に、私はnodemonを使用して、端末でエラーが発生します。

どうすればよいですか?

答えて

0

サービスの資格情報用にjsonを既にダウンロードしている場合は、メインプロジェクトの同じフォルダにcredentials.jsという名前のjsファイルを作成します。このファイルでは、credentialsという変数を作成し、ダウンロードしたjsonを 'service-account.json'と同じにします。名前credentials.jsを、あなたのメインのindex.jsファイル

module.exports = credentials; 

このファイルを保存し、上部に新しく作成されたファイルをインポートします:としても、あなたのファイルの最後にそれをエクスポートすることを忘れないでください

var serviceAccount = require('./credentials.js') 

この変数を資格情報として使用します。 admin.initializedAppの内部は次のようになります。

admin.initializeApp({ 
credential: admin.credential.cert(serviceAccount), 
databaseURL: "https://<NAME OF YOUR DATABASE>.firebaseio.com" 

});

です。ノードがあなたのservice-account.jsonを読むことができない理由は、ファイル拡張子がノードによって読み込み不可能であるためです。私は同じ問題を抱えていて、これは私のために修正しました

+0

私はあなたが言及したすべてを行いましたが、私はまだ同じエラーが発生します。 – Christian

+0

次に、コード内のどこかに問題がある可能性があります。何度もエラーがスローされますが、スローされるエラーは間違っていた場所ではありません。コードを分割して、どこが間違っているのかを確認することをお勧めします。私は単純なものから始めます: –

+0

var admin = require( 'firebase-admin'); var serviceAccount = require( './ credentials.js'); admin.initializeApp({ credential:admin.credential。証明書(serviceAccount)、 databaseURL: "https://cohesive-79cd9.firebaseio.com" }); console.log( 'Application initiliazed'); –

1

firebase-adminを更新してこの問題を解決しました。どうやら、新しいadmin.credential.cert()メソッドは2016年11月7日にfirebase-adminバージョン4.0.0で追加されました。私はfirebase-admin(3.0.0)の古いバージョンを参照しているチュートリアルを使用していましたが、そのバージョンは私のpackage.jsonファイルが参照していたものでした。かつて私は4.0.0を参照しました。私はもはやエラーを経験しませんでした。

https://firebase.google.com/support/release-notes/admin/node

関連する問題