如何从 Firebase 实时数据库中删除一些数据?
Posted
技术标签:
【中文标题】如何从 Firebase 实时数据库中删除一些数据?【英文标题】:How can I delete some data from Firebase Realtime Database? 【发布时间】:2021-09-20 19:26:32 【问题描述】:我有这个功能来保存和获取数据: 保存:
try
const request = new Request('https://yandexmap-96969-default-rtdb.firebaseio.com/locations.json',
method: 'post',
body: JSON.stringify(addNewLocation)
)
const response = await fetch(request)
window.location.reload()
return await response.json()
catch (error)
alert('Try again: ', error)
//to get:
try
const request = new Request('https://yandexmap-96969-default-rtdb.firebaseio.com/locations.json', method: 'get')
const response = await fetch(request)
return await response.json()
catch (error)
alert('Try again: ', error)
当我使用“delete”而不是“get”时,它会完全删除位置文件夹,但是当我在链接末尾使用带有键的链接时,会出现错误
【问题讨论】:
您好,如果我的回答对您有帮助,您可以点击对勾图标接受。 What should I do when someone answers 否则请随时询问更多问题。 【参考方案1】:你可以使用remove方法
let userRef = this.database.ref('users/' + userId);
userRef.remove()
【讨论】:
tip : 添加代码围栏可以突出显示代码并使其更好地阅读(尤其是如果您有很多代码)【参考方案2】:您需要在您需要删除的位置发出DELETE
请求。
curl -X DELETE \
'https://[PROJECT_ID].firebaseio.com/locations.json'
const request = new Request('https://yandexmap-96969-default-rtdb.firebaseio.com/locations.json', method: 'DELETE')
const response = await fetch(request)
return await response.json()
我不确定您的数据库结构如何,但上述请求将删除整个“位置”节点。这是一个例子:
如果您只想删除location2
,请在https://[PROJECT_ID].firebaseio.com/locations/location2.json
提出删除请求
我不确定您是否有任何特定原因需要使用 REST API,但您可以尝试使用 Firebase Web SDK。比较好用,比如删除location2:
firebase.database().ref("locations/location2").remove()
【讨论】:
非常感谢。我忘了在链接末尾添加“.json”【参考方案3】:可以使用下面的代码
deleteSomeData(id)
fetch(
// don't add .json at [data Name]
`https://[your FireBase project url]/[data Name (don't add .json)]/$id.json`,
method: 'Delete',
headers:
'Content-Type': 'application/json',
,
)
.then((response) =>
if (response.ok)
// if sucess do something
else
// if fail throw error
throw new Error('could not delete data');
)
.catch((error) =>
this.error = error.message;
console.log(id);
);
,
【讨论】:
以上是关于如何从 Firebase 实时数据库中删除一些数据?的主要内容,如果未能解决你的问题,请参考以下文章
从 UI 和 Firebase 实时数据库中删除 CardView 数据?
使用 android studio java Recycler 视图从 Firebase 实时数据库中删除一个节点