我在AWS lambda函数使用火力地堡管理员的Python SDK。我想在DB多个对象,推动在一个单一的更新。
for mess in arrayMessages:
...
newMessageKey = root.child('.../messages').push().key
messages_updates[newMessageKey] = {
'author': 'Bob',
'dateTime': d,
'text': mess,
}
messagesKeys.append(newMessageKey)
...
root.child(''.../messages').set(messages_updates)
该“......推()。键”的方法,即在创建该数据库的密钥(这将使意义,然后直接在一个命令移动,但失去了更新的效率)。这样做更新,而不推,插入增量整数键(琐碎的顺序0,1,2 ...)
该SDK的Android客户端赞(设计,即使离线也没拿到钥匙),是有一个解决方案,以获得对象的DB创建甚至在关键?
将下面是有帮助的?
new_message = root.child('.../messages').push({
'author': 'Bob',
'dateTime': d,
'text': mess,
})
messagesKeys.append(new_message.key)
基于实时数据库(如管理员的Python SDK)的REST API数据库客户端,不支持在客户端生成的ID。因此,这是你得到了最好的选择。 FWIW,使得2 API调用像你之前所做的那样,也没有那么糟糕。 SDK将下重复使用相同的HTTP连接,并尽量保持延迟降低。
它使用管理SDK是不可能的。然而,有a python port of the JS code that is used to generate the IDs client-side。
从火力队迈克尔Lehenbauer描述的实施in a blog article。在那里,你还可以找到一个link to a GitHub gist of the implementation这反过来又一个链接到上面的Python实现的注释。