0

我找到了 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());
});

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

感谢您的帮助马特

4

3 回答 3

0

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

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

于 2013-12-05T17:40:46.167 回答
0

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

于 2013-06-28T07:41:14.347 回答
0

使用 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);
}

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

于 2017-01-12T02:05:42.223 回答