我真的很想“优先推动”。但这不存在,所以我计划进行不带参数的推送,然后使用返回的引用进行 setWithPriority 。与文档中的示例类似。
var messageListRef = new Firebase('https://samplechat.firebaseio-demo.com/message_list');
var newMessageRef = messageListRef.push();
newMessageRef.set({ 'user_id': 'fred', 'text': 'Yabba Dabba Doo!' });
但更像是
var messageListRef = new Firebase('https://samplechat.firebaseio-demo.com/message_list');
var newMessageRef = messageListRef.push();
newMessageRef.setWithPriority({ 'user_id': 'fred', 'text': 'Yabba Dabba Doo!' },1000);
我找不到的是验证发生了什么,空推送的回调?
它是否尝试创建一个空节点 - 触发验证和回调等?
或者它只是返回一个引用,该引用(在某种程度上)保证在该父级的所有其他推送中是唯一的? “添加子项”/验证等仅在“集合”上触发?
Edit
好的。确认无参数推送上没有服务器端交互后 - 我的代码现在显示为:
var ref = window.lastref.child("Offers").push();
ref.setWithPriority(spaceof.data, Firebase.ServerValue.TIMESTAMP,function (data) { $("body").prepend(data); }
firebase 时间戳成功地将服务器端时间戳作为优先级,我打算使用此优先级进行垃圾收集 - 删除已经存在的旧“报价”。
为了防止客户端欺骗,我将寻求添加一个验证/安全规则,新节点的优先级必须在实际服务器端时间戳的几秒钟内(如果我遇到困难,我会回来!)。