有没有人尝试使用Firebase JavaScript库从Dart内? [英] Has anyone tried using the Firebase javascript library from within Dart?

查看:121
本文介绍了有没有人尝试使用Firebase JavaScript库从Dart内?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Firebase 键/值存储看起来很有趣,可以使用Dart的HTML框架。

The Firebase key-value store looks intriguing, and would be fun to use with Dart's HTML framework.

他们提供一个JavaScript库来读写他们的模型。有没有人尝试过使用Dart?

They offer a JavaScript library for reading/writing to their model. Has anyone tried using it with Dart?

我的计划(基于非常小的Dart知识)是:

My plan (based on very little Dart knowledge) is to:


  • 将它们的库包含在我的html中

  • 加载js.dart包

  • 通过js.dart实例化一个模型

  • 读写模型。

  • Include their library in my html
  • Load the js.dart package
  • instantiate a model through js.dart
  • read and write through model.

这样看起来是否正确?

Does that seem like the right approach? Or, is there a much better way of doing it?

感谢

推荐答案

您可以通过 js包使用任何Javascript库。

You can use any Javascript library through the js package.

对于 Firebase ,您必须:


  • 添加 js包您的 pubspec.yaml

  • add the js package to your pubspec.yaml
dependencies:
  js: any




  • 在您的HTML页面中添加以下< script>

    • add the the following <script> to your html page :
    • <script src='https://cdn.firebase.com/v0/firebase.js'></script>
      <script type="application/dart" src="youDartCode.dart"></script>
      <script src="packages/browser/dart.js"></script>
      <script src="packages/browser/interop.js"></script> 
      




      • 使用 Firebase Javascript SDK 通过 js包。像:

        • use Firebase Javascript SDK through js package. Something like :
        • import 'package:js/js.dart' as js;
          
          void main() {
            final myDataRef = new js.Proxy(js.context.Firebase,
                'https://xxx.firebaseio-demo.com/');
            myDataRef.on('child_added', (snapshot, String previousChildName) {
              final message = snapshot.val();
              print("${message.name} : ${message.text}");
            });
            myDataRef.push(js.map({"name": 'myName', "text": 'js interop rocks'}));
          }
          

          上述Dart代码等效于以下JavaScript代码:

          The above Dart code is the equivalent of the following JavaScript code :

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






          基本上:


          Basically :


          • 当你必须实例化一个Javascript对象时,使用 new js.Proxy(js.context.MyJavascriptObjectName,arg1,arg2,arg3) ) $>

          当您必须提供Javascript匿名对象时,使用 attr1',value1},{'attr2',value2})

          when you have to provide a Javascript anonymous object, use js.map({'attr1', value1}, {'attr2', value2}).

          这篇关于有没有人尝试使用Firebase JavaScript库从Dart内?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆