【问题标题】:Firebase REST API POST (push) unique id for child item as well as top itemFirebase REST API POST(推送)子项和顶级项的唯一 ID
【发布时间】:2016-01-15 11:30:22
【问题描述】:

在我的应用中,用户可以创建“链”,然后其他用户可以将“链接”添加到链中。当用户创建一个新链时,他们会创建一个链接(不应该有没有链接的链)。

所以我想做这样的事情:

curl -X POST -d '{ "1": "First link for this chain" }' 'https://myapp.firebaseio.com/chains.json'

这将为新链创建一个唯一的时间戳 id,但问题是我还想要第一个链接的唯一时间戳 id,而不是“1”,这样它就可以很好地与其他链接稍后会推送的链接。

我收集到可以使用 JavaScript SDK 等将多个请求放在一起,但是我如何使用 REST API 来做到这一点?

编辑:我没有提到我想在一个请求中完成所有操作,而不是创建一个空链作为一个请求,然后用另一个请求推送第一个链接。

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

    当您在 REST API 上调用 POST 时,Firebase 服务器会生成一个唯一 ID。但对于有 Firebase SDK 的平台(例如 JavaScript、iOS、Android),由 Firebase 客户端生成的唯一 ID。

    Firebase 生成的唯一 ID 通常也称为“推送 ID”,因为它们是由 JavaScript push() 方法生成的。要了解有关它们的更多信息,请阅读此article about push IDs

    生成两个推送 ID 的 sn-p(在 JavaScript 语法中):

    var ref = new Firebase('https://myapp.firebaseio.com/chains');
    var newChain = ref.push();
    console.log(newChain.key());
    var newLink = newChain.push();
    console.log(newLink.key());
    newLink.set('First link for this chain');
    

    最后一行是此 sn-p 中唯一一次对 Firebase 服务器进行任何调用。所有其他操作都是客户端的。

    由于您没有使用 Firebase SDK,因此无法使用上面的 JavaScript sn-p。但是您可以执行与客户端在上述 sn-p 中所做的相同的事情:在客户端生成一个推送 ID,然后将单个命令发送到 REST API。

    code for generating push IDs in JavaScript 由 Firebase 在 Github 上发布:

    【讨论】:

    • 完美,我确实认为如果我只是生成自己的 UID 可能会更容易,所以我会这样做 - 我认为它们甚至不需要与火力基地。
    • 我发现没有 SDK 会有很多事情变得更加困难,现在将发布另一个关于使用 REST API 进行电子邮件/密码验证的问题...
    • SDK 确实不是您最初想象的简单包装器。它们做了很多工作,并包含大量使 Firebase 成为现实的代码。
    • 真可惜 :( 我正在尝试统一使用它 - 我以为我可以只用其余的 api 做所有事情,而不需要统一 sdk
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 2021-12-09
    • 2019-02-22
    • 2016-09-18
    • 2020-03-06
    • 1970-01-01
    相关资源
    最近更新 更多