Firebase实时数据库安全规则中0 0 0 0 0
0 1 0 0 1
0 2 0 0 2
1 0 1 0 0
1 1 1 0 1
1 2 1 0 2
2 0 1 1 0
2 1 1 1 1
2 2 1 1 2
1 2 0
1 2 1
1 2 2
2 0 0
.....
和auth.uid
之间的区别是什么?
我认为它们是相同的(用户只有1个uid),但它们有不同的描述,很想知道明确的答案。
auth.token.sub
:唯一的用户ID,保证在所有提供商中都是唯一的。
auth.uid
:用户的Firebase UID。这在项目中是独一无二的。
干杯
答案 0 :(得分:3)
auth.token.sub是令牌中的id编码。 Firebase Admin SDK具有用于验证和解码ID令牌的内置方法。如果提供的ID令牌具有正确的格式,未过期且已正确签名,则该方法返回已解码的ID令牌。您可以从解码的令牌中获取用户或设备的uid。
所以这意味着你在token.sub中拥有用户的uid。但没有sdk,你无法看到真正的价值原因是不解码。这是为了安全。
如果您想使用此功能,则需要使用// idToken comes from the client app (shown above)
admin.auth().verifyIdToken(idToken)
.then(function(decodedToken) {
var uid = decodedToken.uid;
// ...
}).catch(function(error) {
// Handle error
});
方法进行解码。
Node.js上的示例
parser.add_argument
此处链接https://firebase.google.com/docs/auth/admin/verify-id-tokens
希望有所帮助。
答案 1 :(得分:3)
它们完全一样。提供auth.uid
是为了向后兼容(auth.token
以前不存在于安全规则中)和易用性:sub
不是ID的常用术语,而uid
更容易理解,您不必深入了解令牌内容。