我试图从Chrome扩展程序中调用firebase api的set方法。 由于我在从cdn加载firebase.js时遇到问题,所以我决定将其下载并包含在我的软件包中。 但现在我得到了:
拒绝加载脚本 ' https://mydomain.firebaseio.com/.lp?start=t&ser=323&cb=1&v=5' 因为它违反了以下内容安全策略指令: " default-src' self' blob:filesystem:chrome-extension-resource:"。 请注意' script-src'没有明确设置,所以' default-src'是 用作后备。 (匿名函数)@ firebase241.js:168 firebase241.js:168拒绝加载脚本
执行firebase脚本时。 我知道它与我的扩展名表中的permissions或content_security_policy有关。但我试过这样做:
"content_security_policy": "script-src 'self' https://mydomain.firebaseio.com/; object-src 'self'",
那:
"permissions": [
"gcm",
"storage",
"notifications",
"https://*.firebase.com/",
"https://cdn.firebase.com/js/client/2.4.1/firebase.js",
"https://mydomain.firebaseio.com/*",
],
没有运气。
我也得到了这个:
尝试安装此扩展程序时出现警告: ' content_security_policy'仅允许扩展和遗留 打包的应用程序,但这是一个打包的应用程序。
当我在manifest.js
中设置content_security_policy时"content_security_policy": "script-src 'self' https://mydomain.firebaseio.com/; object-src 'self'"
答案 0 :(得分:1)
' content_security_policy'仅适用于扩展程序和旧版打包应用程序,但这是打包的应用程序
您拥有的不是扩展程序,而是app。这是通过在清单中使用"app"
键来定义的。
你需要解决这种身份危机:
如果您真的想要扩展,则需要删除"app"
密钥并进行真正的扩展。
如果您对术语感到困惑并且您真的打算编写Chrome应用,那么正确的方法是sandboxing。
答案 1 :(得分:1)
我有完全相同的问题。在Firebase Blog中有一个明确的解决方案需要“content_security_policy”进入:
"content_security_policy": "script-src 'self' https://cdn.firebase.com
https://*.firebaseio.com; object-src 'self'"
它对我很有用!