【问题标题】:Looking to use Firebase with Actionscript 3 / Air希望将 Firebase 与 Actionscript 3 / Air 一起使用
【发布时间】:2013-06-24 11:25:47
【问题描述】:

我找到了 Firebase,它看起来非常适合 javascript/HTML5 使用。 但我想知道是否还有 Actionscript API?

例如

var myRootRef = new Firebase('https://myprojectname.firebaseIO-demo.com/');
myRootRef.set('Hello World!');
var dataRef = new Firebase('https://SampleChat.firebaseIO-demo.com/users/fred/name/first');
dataRef.on('value', function(snapshot) {
  alert('fred’s first name is ' + snapshot.val());
});

所以要设置数据并为更新的数据设置监听器等。

感谢您的帮助 马特

【问题讨论】:

  • 我们没有特定的 actionscript API,但您可以调用 JavaScript 来完成您需要做的事情。
  • 感谢 Andrew,尽管我可能最终会使用 AIR for mobile 而不是浏览器中的 flash。所以不能在那种情况下使用?

标签: actionscript-3 flash flash-builder firebase


【解决方案1】:

看起来没有可用的 AS3 api,但好消息是他们有一个跨平台的 rest api,您可以编写一个 AS3 包装器。 (https://www.firebase.com/docs/rest-api.html) 这就是我打算做的。我想将它与 GameBuilder Studio 一起使用。

【讨论】:

  • 这听起来很有趣 Ldubb。您打算如何实现新数据等的“侦听器”功能?
【解决方案2】:

如果您计划将应用程序嵌入到(您创建的)网页中,您可以使用外部 javascript 接口并通过该接口与 firebase 进行通信。

我打算自己做这件事,看看结果如何。

【讨论】:

    【解决方案3】:

    使用 ActionScript 3 连接到 Firebase 只需要使用 URLRequest 和 URLLoader。以下示例涵盖了 4 种基本操作 (CRUD)。

    要从 Firebase 数据库中的特定节点读取数据:

    private function loadNews():void
    {
        var request:URLRequest = new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/<Node_to_read>.json");
    
        var loader:URLLoader = new URLLoader();
        loader.addEventListener(flash.events.Event.COMPLETE, newsLoaded);
        loader.load(request);
    }
    
    private function newsLoaded(event:flash.events.Event):void
    {
        trace(event.currentTarget.data);
        var rawData:Object = JSON.parse(event.currentTarget.data);                              
    }
    

    向特定节点插入数据:

    private function saveEntry(title:String, description:String):void
    {
        var myObject:Object = new Object();
        myObject.title = title;
        myObject.description = description;
        myObject.timestamp = new Date().getTime();
    
        var request:URLRequest = new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/<Node_to_insert>.json");
        request.data = JSON.stringify(myObject);
        request.method = URLRequestMethod.POST;
    
        var loader:URLLoader = new URLLoader();
        loader.addEventListener(flash.events.Event.COMPLETE, entrySent);
        loader.load(request);       
    }
    
    private function entrySent(event:flash.events.Event):void
    {
        trace(event.currentTarget.data);
    }
    

    删除特定节点:

    private function deleteEntry():void
    {
        var header:URLRequestHeader = new URLRequestHeader("X-HTTP-Method-Override", "DELETE");         
    
        var request:URLRequest = new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/<Node_to_delete>.json");
        request.method = URLRequestMethod.POST;
        request.requestHeaders.push(header);
    
        var loader:URLLoader = new URLLoader();
        loader.addEventListener(flash.events.Event.COMPLETE, entryDeleted);
        loader.load(request);           
    }
    
    private function entryDeleted(event:flash.events.Event):void
    {
        trace(event.currentTarget.data);
    }
    

    更新/修改数据到特定节点:

    private function updateEntry(title:String, description:String):void
    {
        var header:URLRequestHeader = new URLRequestHeader("X-HTTP-Method-Override", "PATCH");          
    
        var myObject:Object = new Object();
        myObject.title = title;
        myObject.description = description;
    
        var request:URLRequest = new URLRequest("https://<YOUR-PROJECT-ID>.firebaseio.com/journal/<Node_to_modify>.json");
        request.data = JSON.stringify(myObject);
        request.method = URLRequestMethod.POST;
        request.requestHeaders.push(header);
    
        var loader:URLLoader = new URLLoader();
        loader.addEventListener(flash.events.Event.COMPLETE, entryUpdated);
        loader.load(request);           
    }
    
    private function entryUpdated(event:flash.events.Event):void
    {
        trace(event.currentTarget.data);
    }
    

    如果您想了解更多信息,我已经编写了详细的Firebase REST 指南和示例,介绍如何使用 ActionScript 3 和 Firebase。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-18
      • 2010-10-16
      • 2017-07-02
      • 2013-09-24
      • 2020-12-02
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      相关资源
      最近更新 更多