繁体   English   中英

Firebase中正确的数据结构

[英]Proper data structure in firebase

我是Firebase的新手,不确定我是否正确存储数据。

我正在建立一个表格来存储数据。 现在它只有2个字段,但是稍后我将添加更多输入字段。

我的表单HTML如下所示:

<form>
<div class="form-group">
    <input placeholder="Event Title..." class="form-control" name="eventTitle" ng-model="newEvent.title">
</div>
<div class="form-group">
    <input placeholder="random..." class="form-control" name="eventRandom" ng-model="newEvent.random">
</div>
<button type="submit" class="btn btn-primary pull-right" ng-click="addEvent(newEvent);newEvent = null;">send</button>

我的控制器如下所示:

.controller('ChatCtrl', function ($scope, Ref, $firebaseArray, $timeout) {
// synchronize a read-only, synchronized array of events, limit to most recent 10
$scope.events = $firebaseArray(Ref.child('events').limitToLast(10));

// display any errors
$scope.events.$loaded().catch(alert);

// provide a method for adding a event
$scope.addEvent = function(newEvent) {
  if( newEvent ) {
    console.dir('newEvent: '+ newEvent);
    // push a event to the end of the array
    $scope.events.$add({newEvent})
      // display any errors
      .catch(alert);
  }
};

在firebase中,数据如下所示:

在此处输入图片说明

“ newEvent”节点似乎完全多余。 我不确定如何正确编码表单和控制器。 我似乎在互联网上找到的所有示例均以聊天室为例,并且发送表单仅包含一个textarea字段。

我确实找到了一个包含多个字段的示例,并显示了上面的示例,但是正如我指出的那样,在Firebase生成密钥之后,“ newEvent”节点似乎是多余的。

用多个输入字段编码表单的正确方法是什么?

如果您希望摆脱newEvent并纯粹这样设置结构:

events
    push-key
        random: "random",
        title: "event title"
    push-key
        ...

您如何$add数据的更改:

$scope.events.$add({ title: newEvent.title, random: newEvent.random })
// display any errors
.catch(alert);

您正在推送具有以下结构的对象:

newEvent
    random: "random",
    title: "event title"

它将整个对象插入到按键下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM