如何使用Nashorn在Java Desktop上运行Firebase JS SDK?

时间:2018-09-27 06:35:01

标签: javascript java firebase nashorn

我要这样做的原因是,我想使用Java编写的桌面应用程序使用Firebase实时数据库。但是我不能使用Admin SDK,因为它将由最终用户使用,并且我不想提供服务密钥。

目前,我可以使用Firebase RestAPI读写数据到Firebase,但是我无法在数据可用后立即检索它,需要一些功能,例如“ childEventListener”。而且我想,也许我可以通过通过JavaScript引擎运行rest api来实现这一目标。这就是我想要做的:

ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("nashorn");
engine.eval(new FileReader("firebase-listener.js"));

和firebase-listener.js中的

load("firebase.js");
var config = {
    apiKey: "...",
    authDomain: "xxx.firebaseapp.com",
    databaseURL: "https://xxx.firebaseio.com",
    projectId: "xxx",
    storageBucket: "xxx.appspot.com",
    messagingSenderId: "..."
};
var defaultApp = firebase.initializeApp(config);

我得到了

javax.script.ScriptException: TypeError: Cannot read property "fetch" from 
undefined in firebase.js at line number 1

此时卡住。也许这是不可能的,或者我搜索的方式是错误的...如果是这种情况,请指出正确的方向或给出一些解释,说明为什么不可能/不正确的方式。

0 个答案:

没有答案