【问题标题】:firebase realtime db checking a record for exist [duplicate]firebase实时数据库检查记录是否存在[重复]
【发布时间】:2018-08-03 03:25:43
【问题描述】:

我正在使用 angularfire2 和我的 ionic 应用程序并启用了 facebook 登录。

当用户第一次使用 fb 登录时,我自然不会在我的 firebase DB 中有任何记录。我想使用 facebook 返回的 uid 作为节点创建一个用户节点。

我可以检索它的方式如下所示。我可以通过查看它是否有子对象等来检查。但这是建议进行这种检查的方式吗?我也看不到如何添加订阅或然后添加到它,因为我认为这应该是异步操作让我等到它确认我用户还不存在。请指教

const userRef = this.db.object("/users/" + uid)

【问题讨论】:

  • 用 firebase 检查这个 ionic starter repo,它有 fb 登录和配置文件自定义 github.com/codediodeio/ionic-firestarter
  • 以上使用 angular firestore 但我使用的是 firebase 实时数据库
  • @Frank 你盲目地将其标记为重复。这个问题与没有一次方法的 angularfire2 有关。
  • AngularFire 构建在 Firebase JavaScript SDK 之上。所以链接答案中的方法也可以在我们的 AngularFire 代码中使用。如果您认为因为使用 AngularFire 而需要不同的方法,请在问题中说明您是如何尝试使用该检查的。

标签: firebase ionic-framework firebase-realtime-database angularfire2


【解决方案1】:

仅在数据库中构建对某个位置的引用(如上面的代码所示)并没有说明该位置是否存在数据。需要查询该位置才能确定那里存在数据。

【讨论】:

【解决方案2】:

示例代码来自 firebase Web API 文档。

var starCountRef = firebase.database().ref('posts/' + postId + '/starCount'); starCountRef.on('value', function(snapshot) { updateStarCount(postElement, snapshot.val()); });

【讨论】:

  • 这不是angularfire2
猜你喜欢
  • 2020-06-24
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
相关资源
最近更新 更多