何时使用 uid 以及何时在 angularfire 中使用 $id
When to use uid and when to use $id in angularfire
$id The key where this record is stored. The same as obj.$ref().key
To get the id of an item in a $firebaseArray within ng-repeat, call $id on that item.
这两个来自angular火参考:
https://github.com/firebase/angularfire/blob/master/docs/reference.md
我的理解是,如果有使用 :
创建的 firebase 对象
var object = $firebaseObject(objectRef);
那我就可以一直用uid了。
uid : object.uid
但我看到了 firebase 身份验证用户与 $id 一起使用的示例。
return Auth.$requireSignIn().then(function (firebaseUser) {
return Users.getProfile(firebaseUser.uid).$loaded().then(function (profile) {
**profile.uid or profile.$id here**
还有可能对象有uid但没有$id (obj.$ref().key)。它们不是一回事吗?是否必须首先使用 $loaded() 加载对象才能使用 $id 或 uid?
此致
您似乎混淆了两个概念:
AngularFire 对象的 object.$id
包含该对象在 Firebase 数据库中的键。
a firebaseUser.uid
在 Firebase 术语中是 Firebase 身份验证用户的标识。
通常将您的 Firebase 身份验证用户存储在他们 uid
下的数据库中,在这种情况下 user.$id
就是他们的 uid
。但它们本质上仍然是不同的东西。
Users
uid1
displayName: "makkasi"
uid2
displayName: "Frank van Puffelen"
因此,如果您查看您分享的代码片段:
return Auth.$requireSignIn().then(function (firebaseUser) {
return Users.getProfile(firebaseUser.uid).$loaded().then(function (profile) {
第一行要求用户已登录;只有这样它才会执行带有已登录 firebaseUser
的下一行。这是一个常规 JavaScript 对象 (firebase.User),而不是 AngularFire $firebaseObject
.
第二行然后使用 firebaseUser.uid
属性(该用户的标识)将用户的配置文件从数据库加载到 AngularFire $firebaseObject
。加载该配置文件后,它会执行第三行。
如果用户存储在他们 uid
下的数据库中,在这个阶段 profile.$id
和 firebaseUser.uid
将是相同的值。
$id The key where this record is stored. The same as obj.$ref().key
To get the id of an item in a $firebaseArray within ng-repeat, call $id on that item.
这两个来自angular火参考: https://github.com/firebase/angularfire/blob/master/docs/reference.md
我的理解是,如果有使用 :
创建的 firebase 对象var object = $firebaseObject(objectRef);
那我就可以一直用uid了。
uid : object.uid
但我看到了 firebase 身份验证用户与 $id 一起使用的示例。
return Auth.$requireSignIn().then(function (firebaseUser) {
return Users.getProfile(firebaseUser.uid).$loaded().then(function (profile) {
**profile.uid or profile.$id here**
还有可能对象有uid但没有$id (obj.$ref().key)。它们不是一回事吗?是否必须首先使用 $loaded() 加载对象才能使用 $id 或 uid?
此致
您似乎混淆了两个概念:
AngularFire 对象的
object.$id
包含该对象在 Firebase 数据库中的键。a
firebaseUser.uid
在 Firebase 术语中是 Firebase 身份验证用户的标识。
通常将您的 Firebase 身份验证用户存储在他们 uid
下的数据库中,在这种情况下 user.$id
就是他们的 uid
。但它们本质上仍然是不同的东西。
Users
uid1
displayName: "makkasi"
uid2
displayName: "Frank van Puffelen"
因此,如果您查看您分享的代码片段:
return Auth.$requireSignIn().then(function (firebaseUser) {
return Users.getProfile(firebaseUser.uid).$loaded().then(function (profile) {
第一行要求用户已登录;只有这样它才会执行带有已登录 firebaseUser
的下一行。这是一个常规 JavaScript 对象 (firebase.User),而不是 AngularFire $firebaseObject
.
第二行然后使用 firebaseUser.uid
属性(该用户的标识)将用户的配置文件从数据库加载到 AngularFire $firebaseObject
。加载该配置文件后,它会执行第三行。
如果用户存储在他们 uid
下的数据库中,在这个阶段 profile.$id
和 firebaseUser.uid
将是相同的值。