您能帮我解决有关json的错误吗?

时间:2020-07-18 17:13:14

标签: javascript node.js firebase

我正在尝试使用node.js连接Firebase

我的json文件中包含以下代码。

    const functions = require('firebase-functions');
    const hmac_sha256= require ('crypto-js/hmac_sha256');
    const request= require('request');
    const admin= require('firebase-admin');
    
    const service_Account= require('./service_account_key.json');
    const firebaseConfig= json.parse(process.env.FIREBASE_CONFIG);
    firebaseConfig.credential= admin.credential.cert("service_Account");
    admin.initializeApp(firebaseConfig);
    
    exports.getCustomToken = functions.https.onRequest((req,res)=>{
        const  accessToken= req.query.access_Token;
        const FacebookAppSec= '72100b8d4ee21a85fc67d014f3b0c9fa';
        const AppSecretProof= hmac_sha256(accessToken,FacebookAppSec);
        //Validate token...
        const uri='https://graph.accountkit.com/v1.1/me?access_Token=${accessToken}&App_Proof=${AppSecretProof}';
    
    request({
            url= uri,
            json:true
    },(error,fbresponse,data)=>{
        if(error)
        {
            console.error('Access Token validation request failed\n',error);
            res.status(400).send(error);
        }
        else if(data.error)
        {
            console.error('Invalid Access Token\n',
                'access_Token=${accessToken}',
                'App_Proof=${AppSecretProof}',data.error);
            res.status(400).send(data);
        }
        else
        {
            admin.auth().createCustomToken(data.id)
            .then(CustomToken => res.status(200).send(CustomToken))
            .catch(error => {
                console.error('Create Custom Token Failed.',error);
                res.status(400).send(error);
            })
        }
            
    
    })
    
    })

使用Command-firebase部署后,我得到了

    > G:\New folder\firebase_functions>firebase deploy
    
    === Deploying to 'eatitv2-8aa15'...
    
    i  deploying functions
    Running command: npm --prefix "$RESOURCE_DIR" run lint
    
    > functions@ lint G:\New folder\firebase_functions\functions
    > eslint .
    
    
    G:\New folder\firebase_functions\functions\index.js
      19:9  error  Parsing error: Shorthand property assignments are valid only in destructuring patterns
    
    ✖ 1 problem (1 error, 0 warnings)
    
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! functions@ lint: `eslint .`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the functions@ lint script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     C:\Users\Maaz Farooq\AppData\Roaming\npm-cache\_logs\2020-07-18T16_58_24_083Z-debug.log
    events.js:292
          throw er; // Unhandled 'error' event
          ^
    
    Error: spawn npm --prefix "%RESOURCE_DIR%" run lint ENOENT
        at notFoundError (C:\Users\Maaz Farooq\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:6:26)
        at verifyENOENT (C:\Users\Maaz Farooq\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:40:16)
        at ChildProcess.cp.emit (C:\Users\Maaz Farooq\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:27:25)
        at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
    Emitted 'error' event on ChildProcess instance at:
        at ChildProcess.cp.emit (C:\Users\Maaz Farooq\AppData\Roaming\npm\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:30:37)
        at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12) {
      code: 'ENOENT',
      errno: 'ENOENT',
      syscall: 'spawn npm --prefix "%RESOURCE_DIR%" run lint',
      path: 'npm --prefix "%RESOURCE_DIR%" run lint',
      spawnargs: []
    }
    
    Error: functions predeploy error: Command terminated with non-zero exit code1

我在堆栈溢出和github上都看到了很多答案,但是没有任何反应。我已经尽力通过myown解决了这个问题,也从在线社区获得了帮助,但现在将其发布给大家。

1 个答案:

答案 0 :(得分:1)

输出显示ESLint在index.js的第19行上给您此错误消息:

19:9错误解析错误:简写属性分配仅在解构模式下有效

第19行位于下面的url= uri

request({
        url= uri,
        json:true
},(error,fbresponse,data)=>{

如果要为JavaScript对象中的属性赋值,则必须使用:而不是=,就像使用json:true一样。

request({
        url: uri,
        json:true
},(error,fbresponse,data)=>{