如何推动在火力地堡管理员的Python SDK之前获得DB钥匙

问题描述 投票:1回答:2

我在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创建甚至在关键?

python firebase firebase-realtime-database aws-lambda firebase-admin
2个回答
0
投票

将下面是有帮助的?

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连接,并尽量保持延迟降低。


0
投票

它使用管理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实现的注释。

© www.soinside.com 2019 - 2024. All rights reserved.