有人试过从Dart中使用Firebase javascript库吗?

有人试过从Dart中使用Firebase javascript库吗?,dart,firebase,Dart,Firebase,键值存储看起来很有趣,与Dart的HTML框架一起使用会很有趣 它们提供了一个JavaScript库,用于读取/写入模型。有人试过用飞镖吗 我的计划(基于很少的Dart知识)是: 在我的html中包含它们的库 加载js.dart包 通过js.dart实例化模型 通过模型进行读写 这似乎是正确的方法吗?或者,有更好的方法吗 谢谢您可以通过使用任何Javascript库 因为你必须: 添加到您的pubspec.yaml 依赖项: js:有吗 将以下添加到html页面: 通过使用。

键值存储看起来很有趣,与Dart的HTML框架一起使用会很有趣

它们提供了一个JavaScript库,用于读取/写入模型。有人试过用飞镖吗

我的计划(基于很少的Dart知识)是:

  • 在我的html中包含它们的库
  • 加载js.dart包
  • 通过js.dart实例化模型
  • 通过模型进行读写
这似乎是正确的方法吗?或者,有更好的方法吗


谢谢

您可以通过使用任何Javascript库

因为你必须:

  • 添加到您的
    pubspec.yaml
依赖项:
js:有吗
  • 将以下
    添加到html页面:

  • 通过使用。比如:
将'package:js/js.dart'导入为js;
void main(){
final myDataRef=新的js.Proxy(js.context.Firebase,
'https://xxx.firebaseio-demo.com/');
myDataRef.on('child_added',(快照,字符串previousChildName){
最终消息=snapshot.val();
打印(${message.name}:${message.text});
});
myDataRef.push(js.map({“name”:“myName”,“text”:“js interop rocks”}));
}
上述Dart代码相当于以下JavaScript代码:

var myDataRef=new Firebase('https://xxx.firebaseio-demo.com/');
myDataRef.on('child_added',函数(快照,previousChildName){
var message=snapshot.val();
console.log(message.name+“:”+message.text);
}));
push({name:'myName',text:'js interop rocks'});

基本上:

  • 当您必须实例化Javascript对象时,请使用
    new js.Proxy(js.context.MyJavascriptObjectName,arg1,arg2,arg3))

  • 当您必须提供Javascript匿名对象时,请使用
    js.map({'attr1',value1},{'attr2',value2})

当Dart到达此处时,我收到错误消息“异常中断:引用错误:未定义ReceivePortSync”

    js.scoped (() {

    });
将Firebase与Dart一起使用还需要一行代码。添加行“packages/browser/interop.js”


现在Dart中有了firebase.js库的包装器:(也可在pub上获得)。正如本文所讨论的,它使用了dart:js,因此仍然需要包含firebase.js

[Firebase创始人在这里]到目前为止,我还不知道有人尝试过这种方法,但我很想看到它发挥作用。如果你得到一个实施工作,请让我们知道!嗨,安迪,你能让这一切顺利进行吗?我正在考虑为一个个人项目做同样的事情。有趣的是你应该问。我刚回来看达特。它有太多值得喜欢的地方。我真希望这是一场闲聊;-)不管怎样,简短的回答是“不”,但是帖子底部的一些信息看起来很有希望。太棒了!非常感谢。从最初的线程开始,很多时间已经过去了。现在pub中有了一个firebase包:与javascript互操作交互的语法在较新版本的dart中发生了变化。这个例子不适用于Firebase 3.0。在我提交答案后,js包引入了
interop.js
。我已经更新了。谢谢
    <script type="application/dart" src="ScrollViewDemo.dart"></script>
    <script src="packages/browser/dart.js"></script>
    <script src="packages/browser/interop.js"></script>   
    <script src='https://cdn.firebase.com/v0/firebase.js'></script>
js.scoped is no longer needed in the newer version of interopt.js