【发布时间】:2013-07-20 07:26:25
【问题描述】:
到目前为止,我还没有看到任何讨论或意识到 Firebase 实际上通过它们返回的“快照”(即包装器)为每个特定数据记录提供了唯一标识符(实际上是完整的 URL)数据记录(通过 snapshot.val() 访问)。通过对快照进行基本属性检查,我发现唯一的 URL 是可用的(参见下面的示例)。但是,似乎出于某种原因,Firebase 每隔几天就会不断更改密钥的名称,导致我的应用程序崩溃。我必须进去重新发现新的 URL 属性键并更改它,以便它再次工作。
以下是迄今为止我看到的关键变化的三个示例。每个值都是相同的,但键会随着时间而变化(即:“Wb”、“Xb”、“bc”)。:
getMemberBySnapshot - snapshot has prop Wb with value https://prototype1.firebaseio.com/users/-IwohKfw1l5F3gFqyJJ5
getMemberBySnapshot - snapshot has prop Xb with value https://prototype1.firebaseio.com/users/-IwohKfw1l5F3gFqyJJ5
getMemberBySnapshot - snapshot has prop bc with value https://prototype1.firebaseio.com/users/-IwohKfw1l5F3gFqyJJ5
我已阅读 Firebase 的建议,即如果开发人员想要一个唯一的密钥,他们应该使用电子邮件地址(如果我的模型不使用电子邮件字段怎么办?如果用户想要更改他们的电子邮件怎么办?),或者 Firebase 建议替代检索所有现有记录,然后在客户端上搜索它们。这些解决方案都不能令人满意。但我看到他们确实为“快照”中的每个数据记录提供了唯一的 URL。为什么他们不提供稳定的密钥以便开发人员可以一致地调用它???
【问题讨论】:
标签: firebase