我正在应用引擎灵活的环境中用php开发代码。我正在尝试为Firebase设置SDK Admin(Web版)。
当前,我正在努力处理以下代码:
$.ajax({
type: 'GET',
url: "prueba.js",
dataType: 'json'
}).done(function(res){
console.log("Todo bien!");
}).fail(function(jqXHR,textStatus,err){
console.log(err);
});
上述代码正在通过AJAX调用以下代码(即“ prueba.js”):
var admin = require(firebase-admin');
var serviceAccount = require('path/to/json-key.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: 'https://<database>.firebaseio.com'
});
这些代码引发异常:
SyntaxError: Unexpected token v in JSON at position 0
at JSON.parse (<anonymous>)
at n.parseJSON (jquery.min.js:4)
at ub (jquery.min.js:4)
at x (jquery.min.js:4)
at XMLHttpRequest.<anonymous> (jquery.min.js:4)
...最后,但并非最不重要的是,文件夹和文件的组织:
“ p”文件夹中的包含firebase-admin的'node_modules'与index.js,package.json和package-lock.json一起位于根文件夹('web')
Prueba.html和prueba.js位于路径'web / asg / trm / admin'
package.json包含以下代码:
{
"name": "web",
"version": "1.0.0",
"description": "",
"main": "index.js",
"dependencies": {
"firebase-admin": "^6.0.0"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
相反,'index.js'不包含任何代码。
我已经测试了以下内容:
由于我在Node.js方面的短暂经验,最近两天我一直在努力使收支平衡,但没有成功。因此,任何形式的帮助都将受到欢迎!
非常感谢!
答案 0 :(得分:2)
url: "prueba.js", dataType: 'json'
您要的是JavaScript文件,但要让jQuery将其解析为JSON。
这是该JavaScript文件的第一行:
var admin = require(firebase-admin');
…其中的第一个字符是v
,被报告为意外令牌。 JSON不能以v
开头,但是如上所述,您拥有的不是JSON。
它也不是客户端JavaScript,它看起来像是打算在Node.js上运行的服务器端程序的一部分,
由于某种原因,您根本没有使用Node.js运行它,而是将源代码传递到了Web浏览器。
您可以将服务器端程序编写为Web服务(update
很流行),然后使用Node.js运行它。然后,应将url
设置为以此创建的端点的URL。