gpt4 book ai didi

angularjs - Firebase 简单的 REST 删除?

转载 作者:行者123 更新时间:2023-12-02 21:08:39 29 4
gpt4 key购买 nike

我在 firebase 中的数据如下所示。我正在阅读https://www.firebase.com/docs/rest/api/很奇怪,我正在尝试删除一个项目。

burning-*

contacts

-K7qAf6egBeg5l3e_Gjc
name: "Ind"
phonenumber: "(408) ***-***"
uid: "1"

-K7qB8Afu7bIm9LUtV68
name: "Paul Bhayya"
phonenumber: "(408) ***-***"
uid:"2"

在 angular.js 中,我在我的自定义指令中进行此调用。

$http.delete(Firebaseurl + '/contacts/'+scope.contact.name+'/.json').then(function(result) {
console.log(result);
});

API 对我来说没有意义,我发现问题可能是我的数据现在嵌套在一个具有奇怪 ID 的 key 内,即 -K7qAf6egBeg5l3e_Gjc

所以我想知道如何通过键 name 进行调用来删除项目,因此如果客户端单击了该联系人,则表示单击了 Ind 然后我告诉Firebase 删除具有该名称的联系人。也许 ID 更好,但无论怎样都行。

编辑:

仅供引用,我解析了 Firebase 对象 selectedContacts 是对象的 GET 方法的结果。它的格式不太适合我的 Angular 代码,因此我将其转换为一个干净的对象数组,并使用它与其他数据集进行比较以传递到 $scope

Object.keys(selectedContacts.data).forEach(function(key) {
selectedContactsArray.push(selectedContacts.data[key]);
});

selectedContactsArray.filter( function( item ) {
for( var i=0, len=usersContacts.length; i<len; i++ ){
if( usersContacts[i].name == item.name ) {
usersContacts[i]['selectedContact'] = true
}
}
});

最佳答案

通过姓名获取用户:

...firebaseio.com/contacts.json?orderBy="name"&equalTo="Ind"&limitToFirst=1

您必须向安全规则添加索引:

{
"rules": {
"contacts": {
".indexOn": ["name"]
}
}
}

使用此索引,查询将返回如下对象:

{
"-K7qAf6egBeg5l3e_Gjc": {
"name": "Ind",
"phonenumber": "(408) ***-***",
"uid": "1"
}
}

您可以从那里读取 key ,然后执行 REST DELETE 请求

...firebaseio.com/contacts/-K7qAf6egBeg5l3e_Gjc.json

但正如您问题的评论中所讨论的,您也可以使用 AngularFire 来执行相同的操作。

关于angularjs - Firebase 简单的 REST 删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34746529/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com