当前位置: 首页 > 面试题库 >

从Firebase移除物品

夏弘义
2023-03-14
问题内容

我试图了解如何从Firebase中删除项目。我已经建立了一个函数(createProvider)创建一个项目,但无法弄清楚如何删除一个项目。

HTML

<form role="form" name="createProviderForm">
    <input type="text" ng-model="title">
    <button type="submit" ng-click="createProvider()">Submit</button>
</form>

<div ng-repeat="provider in providers">
    <h3>{{ provider.title }}</h3>
    <button type="button" ng-click="removeProvider()">Remove</button>
  </div>
</div>

JS

var rootRef = new Firebase(FBURL);
var providersRef = rootRef.child('providers');

$scope.newProvider = {};
$scope.providers = [];

providersRef.on('child_added', function(snapshot) {
  $timeout(function() {
    var snapshotVal = snapshot.val();
    console.log(snapshotVal);
    $scope.providers.push({
      title: snapshotVal.title
    });
  });
});

$scope.createProvider = function() {
  var newProvider = {
    title: $scope.title
  };
  providersRef.push(newProvider);
};

$scope.removeProvider = function() {

};

我已经removeProvider尽力创建了一个名为的函数,但无法计算出要放入其中的内容。我意识到我必须以某种方式定位特定项目,然后将其从列表中删除。我只是不确定如何。

任何帮助,将不胜感激。提前致谢!


问题答案:

要从Firebase中删除项目,您需要知道它name(),它是在您调用push()将新项目添加到Firebase 时自动为您生成的。

因此,您需要将名称绑定到范围:

$scope.providers.push({
  name: snapshot.name(),
  title: snapshotVal.title
});

然后,您将此名称removeProvider从HTML 传递到您的呼叫中:

<div ng-repeat="provider in providers">
    <h3>{{ provider.title }}</h3>
    <button type="button" ng-click="removeProvider(provider.name)">Remove</button>
</div>

并使用它调用removeFirebase:

$scope.removeProvider = function(name) {
  providersRef.child(name).remove();
};

正如@SharpieOne所评论的那样,如果您使用AngularFire库(在本例中为它的$asArray()方法),则将自动为您处理此以及其他许多事情。



 类似资料:
  • 大家早上好。我有以下代码: 问题是,uri变量被分配给RestTemplate构造函数为,也就是说,它从代码变量中删除初始的。

  • 我正在尝试从Fabric迁移到Firebase Crashlytics,但没有通过。我已经登录了,系统仍然要求我登录。此外,登录谷歌入门按钮没有响应。当我单击profile旁边的小按钮时,它会将我重定向到Fabric仪表板,但我仍然看不到任何连接两个帐户的选项。你能帮我一下吗?

  • 我的Android项目目前正在使用Firebase Crashlytics。我想要使用织物速成。

  • 问题内容: 如何从网络应用程序中嵌入的iframe中删除边框?iframe的一个示例是: 假设背景颜色一致,我希望从页面上的内容到iframe的内容的过渡是无缝的。目标浏览器仅是IE6,遗憾的是,其他浏览器的解决方案将无济于事。 问题答案: 添加属性(注意 大写字母’B’ )。 因此,它看起来像:

  • 问题内容: 可能是一个很糟糕的问题,但是我使用的是Django的UserCreationForm(经过稍微修改以包括电子邮件),并且我想删除Django自动显示在HTML页面上的help_text。 在我的HTML页面的“注册”部分,它具有“用户名”,“电子邮件”,“密码1”和“密码2”字段。但是用户名下面是“必填。必须少于30个字符。仅字母,数字和@ …”。在“密码确认”(密码2)下,显示“输入

  • 我的Firebase数据库存储格式如下。 但在设置存储在firebase数据库中的值时,我是这样做的。 当我写上面的代码时,我在Firebase数据库中添加了一个数据。但是它会自动在我的插入数据库格式顶部包含数据快照JsonObject,就像这样,这是错误的。 如何从Firebase的插入格式中删除此DataSnapshot?