索引 Firebase 时是发送两个请求还是发送一个请求更好?
Is it better to send two requests or one when indexing a Firebase?
我的 Firebase 看起来像这样:
- widgets
- abc123abc
- key1: val1
- key2: val2
- key3: val3
- ...
+ abc123abd
+ ...
- widgets-index
- abc123abc
- timestamp: 1289183274834
- abc123abd
- timestamp: 1289183274834
我正在存储 widget
个对象的集合,同时保留一个单独的索引列表。当我使用索引视图从选定对象获取数据时,我需要获取数据对象属性的子集。
我在某处读到 Firebase 使用网络套接字,所以我不应该担心多次提取的性能成本?我的理解正确吗?
我应该在什么时候将对象属性的整个子集存储在 widgets-index
节点而不是单独调用 /widgets
?
编辑:
Firebase 实时数据库支持任意复杂的原子深度更新(博客 post)。它是这样工作的:
您可以通过一次 .update() 调用来更新任意深度的路径
更新映射键侧的完整路径将被替换,因此如果您不想破坏父键,则必须直接处理子键
路径是相对于你当前的 ref
那么让我们举个例子:
var update = {};
update['emails/email3@example,com'] = {new: 'data'};
update['emails/email4@example,com'] = {new: 'data'};
update['users/c0djhbQi6vc4YMB-fDgJ/emails/email3@example,com'] = {new: 'data'};
update['users/c0djhbQi6vc4YMB-fDgJ/emails/email4@example,com'] = {new: 'data'};
firebase.database().ref().update(update);
这将同时更新所有位置。要使其动态化,只需在构造键时使用字符串插值即可。
免责声明:此答案复制自。最初回答者:@Michael Bleigh
- widgets
- abc123abc
- key1: val1
- key2: val2
- key3: val3
- ...
+ abc123abd
+ ...
- widgets-index
- abc123abc
- timestamp: 1289183274834
- abc123abd
- timestamp: 1289183274834
我正在存储 widget
个对象的集合,同时保留一个单独的索引列表。当我使用索引视图从选定对象获取数据时,我需要获取数据对象属性的子集。
我在某处读到 Firebase 使用网络套接字,所以我不应该担心多次提取的性能成本?我的理解正确吗?
我应该在什么时候将对象属性的整个子集存储在 widgets-index
节点而不是单独调用 /widgets
?
编辑:
Firebase 实时数据库支持任意复杂的原子深度更新(博客 post)。它是这样工作的:
您可以通过一次 .update() 调用来更新任意深度的路径 更新映射键侧的完整路径将被替换,因此如果您不想破坏父键,则必须直接处理子键 路径是相对于你当前的 ref 那么让我们举个例子:
var update = {};
update['emails/email3@example,com'] = {new: 'data'};
update['emails/email4@example,com'] = {new: 'data'};
update['users/c0djhbQi6vc4YMB-fDgJ/emails/email3@example,com'] = {new: 'data'};
update['users/c0djhbQi6vc4YMB-fDgJ/emails/email4@example,com'] = {new: 'data'};
firebase.database().ref().update(update);
这将同时更新所有位置。要使其动态化,只需在构造键时使用字符串插值即可。
免责声明:此答案复制自