Firebase - 'pushWithPriority' - 和验证

Firebase - 'pushWithPriority' - and validation

我很想'push with priority'。但这不存在,所以我计划在没有参数的情况下进行推送,然后使用 returned 引用进行 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);

我找不到的是验证发生了什么,在空推送时回调?

它是否尝试创建一个空节点 - 触发验证和回调等?

或者它只是 return 一个引用(在某种程度上)保证在所有其他推送给该父级的推送中是唯一的? 'add child'/验证等仅在 'set'?

上触发

编辑

好的。确认在无参数推送上没有服务器端交互 - 我的代码现在显示为:

var ref = window.lastref.child("Offers").push();
ref.setWithPriority(spaceof.data, Firebase.ServerValue.TIMESTAMP,function (data) { $("body").prepend(data); }

firebase timstamp 成功将服务器端时间戳作为优先级,我打算使用此优先级进行垃圾收集 - 删除旧的 'offers' 已经放置。

为了防止客户端欺骗,我将寻求添加一个 validation/security 规则,新节点的优先级必须在实际服务器端时间戳的几秒内(如果我卡住了,我会回来的!)。

Push 只是创建一个唯一的 ID 和 returns 对它的引用。这是一个纯客户端操作,因此不会触发服务器端验证(例如 Firebase 的安全规则)。