javascript - 可以生成 Firebase UID 的短链接吗?

标签 javascript angularjs firebase angularfire

这对你们中的一些人来说可能是理所当然的事情,但我不确定它是否可能。

使用 AngularFire,我想缩短推送时创建的生成的 uid。为什么? 因为我想构建一个函数来共享 Firebase 中动态路径的链接,所以而不是

https://url.firebaseio.com/lists/-KGhj0n_wN1xyhtu7HOR

我想要类似的东西

https://url.firebaseio.com/AbcDe

“生成器”将构建一个新的 uid,但仍引用 “-KGhj0n_wN1xyhtu7HOR”。

这可能吗?值得吗?或者有更好的方法吗?

最佳答案

是的,听起来完全可行。创建一个新的顶级列表,在其中将短链接映射到列表 ID。

shortlinks: {
  "AbcDe": "-KGhj0n_wN1xyhtu7HOR"
}

现在,当有人进入短链接时,您只需使用以下命令即可查找实际列表 ID:

ref.child('shortlinks').child(shortlinkFromUrl).once('value', function(snapshot) {
  if (snapshot.exists()) {
    // TODO: load the list with key snapshot.val()
  }
  else {
    console.error('That's a non-existing shortlink');
  }
})

您必须解决的剩余问题

  • 您将如何生成短链接? Firebase 推送 ID(调用 $firebaseArray.$add()Firebase.push() 时获得的内容)保证是唯一的,这是原因之一它们太长了。较短的链接更容易记住,但您必须找到某种方法来保证其唯一性。请参阅 How do you prevent duplicate user properties in Firebase? 已接受的答案,但可能还有其他十几个与此相关的问题。
  • 如果您找到一种方法来生成对于您的用例来说足够独特的较短链接,为什么不使用它们作为列表的键呢?因此,不要将该列表存储在 -KGhj0n_wN1xyhtu7HOR 下,而是将其存储在 AbcDe 下。它节省了您的查找时间。

关于javascript - 可以生成 Firebase UID 的短链接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36971122/

相关文章:

javascript - CSS/JavaScript : Change element class depending on its' current background?

javascript - Javascript 中的三元运算符和分组语句

javascript - 嵌套异步函数,最佳实践

Angular js 之外的 JavaScript

javascript - 如何求和对象数组中相同字段的值?

javascript - Angular 过滤器返回异常结果

javascript - 从外部应用程序通过 Salesforce 服务器发送电子邮件

ios - 如何使用 Swift3 在​​ FIrebase 中查询/检查特定的键/值对

Android Firebase Google SIgnon 错误请求

java - 将 Firebase Auth 从 Android SDK 切换到 Firebase Admin SDK