【问题标题】:I want to use Firebase Authentication on Actions on Google我想对 Google 上的操作使用 Firebase 身份验证
【发布时间】:2018-10-24 03:29:03
【问题描述】:

我是 Actions on Google 的初学者。 我正在创建一个关于 Actions on Google 的应用程序。

我想使用 Firebase 身份验证。 在这种情况下,我应该使用 AccountLinking 功能吗?

你能告诉我具体的说明吗?

如果您也可以提供 index.js 的示例代码,我们将不胜感激。

提前谢谢你。

【问题讨论】:

  • 如果您提供迄今为止尝试过的代码,您将获得最佳答案。这让每个人都可以参考您对自己想要做什么的理解程度,并为您指明正确的方向。

标签: node.js firebase google-cloud-platform firebase-authentication


【解决方案1】:

我参考了以下网址。 https://firebase.google.com/docs/web/setup https://firebase.google.com/docs/auth/web/google-signin

index.js的代码如下。

var App = require('actions-on-google').DialogflowApp;
var functions = require('firebase-functions');
var firebase = require('firebase');
var admin = require('firebase-admin');

/**
 * Responds to any HTTP request that can provide a "message" field in the body.
 *
 * @param {!Object} req Cloud Function request context.
 * @param {!Object} res Cloud Function response context.
 */
exports.testMethod = (req, res) => {
    // Initialize Firebase
    admin.initializeApp({
        credential:admin.credential.cert({
            apiKey:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            authDomain:"test.firebaseapp.com",
            databaseURL:"https://xxxxx.firebaseio.com",
            projectId:"test",
            storageBucket:"test.appspot.com",
            messagingSenderId:"xxxxxxxxxxx"
        })
    });

    var app = new App({request:req, response:res});
    let user = app.getUser();
    console.log('User is ' + user);
    let id_token = app.getUser().accessToken;
    console.log('accessToken is ' + accessToken);

    //var id_token = googleUser.getAuthResponse().id_token

    // Build Firebase credential with the Google ID token.
    var credential = firebase.auth.GoogleAuthProvider.credential(id_token);

    // Sign in with credential from the Google user.
    firebase.auth().signInWithCredential(credential).catch(function(error) {
        // Handle Errors here.
        var errorCode = error.code;
        var errorMessage = error.message;
        // The email of the user's account used.
        var email = error.email;
        // The firebase.auth.AuthCredential type that was used.
        var credential = error.credential;
        // ...
    });
};

出现以下错误。

错误:证书对象必须包含字符串“private_key”属性。在 FirebaseAppError.Error (native) 在 FirebaseAppError.FirebaseError [作为构造函数] (/user_code/node_modules/firebase-admin/lib/utils/error.js:25:28) 在新 FirebaseAppError (/user_code/node_modules/firebase-admin/ lib/utils/error.js:70:23) 在新证书 (/user_code/node_modules/firebase-admin/lib/auth/credential.js:108:19) 在新 CertCredential (/user_code/node_modules/firebase-admin/ lib/auth/credential.js:174:33) 在 Object.cert (/user_code/node_modules/firebase-admin/lib/firebase-namespace.js:175:58) 在 exports.testMethod (/user_code/index.js: 15:34) 在 /var/tmp/worker/worker.js:684:7 在 /var/tmp/worker/worker.js:668:9 在 _combinedTickCallback (internal/process/next_tick.js:73:7)

【讨论】:

    猜你喜欢
    • 2017-03-11
    • 2018-06-26
    • 2016-09-26
    • 2017-02-28
    • 2022-01-07
    • 1970-01-01
    • 2016-12-01
    • 2018-10-19
    • 2018-01-26
    相关资源
    最近更新 更多