是否可以在Firebase实时数据库中重命名密钥?

路易斯·罗德里格斯(Luis Rodriguez)

我想知道,有没有办法更新键值?

让我们使用以下数据:

我的资料

我正在使用set()写入数据。现在,我希望用户对其进行编辑bookTitle,并且需要在两个地方都进行更改。我尝试使用update(),但似乎无法正常工作。我只能在bookTitle编辑“bookInfo不在” books

移动不是一种选择,因为它会删除bookData我也尝试使用push()进行编写,但是之后,由于我没有pushID,因此无法正确搜索(我需要进行搜索,因为用户不能拥有两本同名的书)

那么,有没有办法更新键值?还是有更好的方法呢?我接受建议。谢谢!

更新:这是我目前用来更新内部书名的内容bookInfo

var bookName = document.getElementById('bookName').value;

firebase.database().ref('books/' + bookName + '/bookInfo').update({
    bookTitle : bookName
});
迈克尔·布莱利

我想我明白了您要做什么。Firebase没有通过更新“重命名”路径的一部分的概念。相反,您将必须完全删除现有节点并重新创建它。您可以这样做:

var booksRef = firebase.database().ref('books');
booksRef.child(oldTitle).once('value').then(function(snap) {
  var data = snap.val();
  data.bookInfo.bookTitle = newTitle;
  var update = {};
  update[oldTitle] = null;
  update[newTitle] = data;
  return booksRef.update(update);
});

这将从中删除信息,books/oldTitle并在中添加新标题books/newTitle

警告:这取决于读取数据,然后执行第二次异步更新。如果您可能有多个用户同时操作相同的数据,则可能会导致问题。您可以使用事务来自动执行此操作,但是如果它/books是具有许多节点的顶级资源,则可能会导致性能问题。

如果一个人可能一次编辑数据,则上述解决方案很好。如果不是,您可能要考虑使用非用户控制的标识符,例如推送ID。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您可以从Firebase实时数据库密钥获取时间戳吗?

来自分类Dev

Firebase 实时数据库编辑密钥并保留子项

来自分类Dev

如何消除实时数据库Firebase抖动中的自动生成的密钥

来自分类Dev

在实时数据库中插入记录并获取密钥

来自分类Dev

如何获取实时数据库中的特定密钥?

来自分类Dev

是否可以将firebase auth链接到实时数据库

来自分类Dev

设备离线时是否可以访问 Firebase 实时数据库?

来自分类Dev

Firebase的UI Auth是否与实时数据库连接?

来自分类Dev

如何使用firebase实时数据库检查数据是否已经在html表中?

来自分类Dev

如何从Firebase中的实时数据库获取数据

来自分类Dev

从 Firebase 实时数据库中检索子数据

来自分类Dev

Firebase 实时数据库中的数据插入无限

来自分类Dev

Firebase 实时数据库,从键值对中获取数据

来自分类Dev

无法从 Firebase 实时数据库中检索数据

来自分类Dev

您可以控制 firebase 实时数据库安全规则中的各个属性吗?

来自分类Dev

如何检查 Firebase 实时数据库中是否存在子子项?

来自分类Dev

Firebase:从实时数据库中检索childByAutoID

来自分类Dev

如何从Firebase实时数据库中删除?

来自分类Dev

Web中的Flutter Firebase实时数据库

来自分类Dev

如何更新Firebase实时数据库中的位置?

来自分类Dev

在实时数据库中存储 Firebase 云消息

来自分类Dev

从 Firebase 实时数据库中检索好友

来自分类Dev

我如何从Firebase实时数据库中获取属于随机密钥的子级的数据-使用react native?

来自分类Dev

Firebase实时数据库addValueEventListener

来自分类Dev

Firebase实时数据库-规则

来自分类Dev

Firebase实时数据库addValueEventListener

来自分类Dev

Android:Firebase实时数据库

来自分类Dev

Firebase 实时数据库的问题

来自分类Dev

Firebase 实时数据库帖子

Related 相关文章

  1. 1

    您可以从Firebase实时数据库密钥获取时间戳吗?

  2. 2

    Firebase 实时数据库编辑密钥并保留子项

  3. 3

    如何消除实时数据库Firebase抖动中的自动生成的密钥

  4. 4

    在实时数据库中插入记录并获取密钥

  5. 5

    如何获取实时数据库中的特定密钥?

  6. 6

    是否可以将firebase auth链接到实时数据库

  7. 7

    设备离线时是否可以访问 Firebase 实时数据库?

  8. 8

    Firebase的UI Auth是否与实时数据库连接?

  9. 9

    如何使用firebase实时数据库检查数据是否已经在html表中?

  10. 10

    如何从Firebase中的实时数据库获取数据

  11. 11

    从 Firebase 实时数据库中检索子数据

  12. 12

    Firebase 实时数据库中的数据插入无限

  13. 13

    Firebase 实时数据库,从键值对中获取数据

  14. 14

    无法从 Firebase 实时数据库中检索数据

  15. 15

    您可以控制 firebase 实时数据库安全规则中的各个属性吗?

  16. 16

    如何检查 Firebase 实时数据库中是否存在子子项?

  17. 17

    Firebase:从实时数据库中检索childByAutoID

  18. 18

    如何从Firebase实时数据库中删除?

  19. 19

    Web中的Flutter Firebase实时数据库

  20. 20

    如何更新Firebase实时数据库中的位置?

  21. 21

    在实时数据库中存储 Firebase 云消息

  22. 22

    从 Firebase 实时数据库中检索好友

  23. 23

    我如何从Firebase实时数据库中获取属于随机密钥的子级的数据-使用react native?

  24. 24

    Firebase实时数据库addValueEventListener

  25. 25

    Firebase实时数据库-规则

  26. 26

    Firebase实时数据库addValueEventListener

  27. 27

    Android:Firebase实时数据库

  28. 28

    Firebase 实时数据库的问题

  29. 29

    Firebase 实时数据库帖子

热门标签

归档