Firebase实时数据库与电子邮件的私有共享数据? [英] Firebase Realtime Database Private Shared Data With E-Mail?
本文介绍了Firebase实时数据库与电子邮件的私有共享数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在用户之间共享安全数据.
I want to share secure data between users.
"shared_requests" : {
"shared_uid" : {
"deviceSeriNo" : "device1serino",
"user1" : {
"email" : "john@john.com",
"userName" : "John"
},
"user2" : {
"email" : "micheal@micheal.com",
"userName" : "Micheal"
}
}
}
规则:(编辑,我忘了写一小部分.(auth.uid.email.replace('@','').replace('.','')) )
Rules: (Edited, I forgot to write a small part. (auth.uid.email.replace('@','').replace('.','')))
"shared_requests": {
"$key": {
".read": "root.child('shared_requests').child($key).child('user1/email').val() == auth.uid.email.replace('@','_').replace('.','_') || root.child('shared_requests').child($key).child('user2/email').val() == auth.uid.email.replace('@','_').replace('.','_')",
".write": "root.child('shared_requests').child($key).child('user1/email').val() == auth.uid.email.replace('@','_').replace('.','_') || root.child('shared_requests').child($key).child('user2/email').val() == auth.uid.email.replace('@','_').replace('.','_')"
}
}
但是不起作用.我该如何解决这个问题?
But not working. How can I solve this problem?
当我尝试使用UID时可以使用.
"shared_req4": {
"shared_uid": {
"$key": {
".read": "auth != null && auth.uid === $key",
".write": "auth != null && auth.uid === $key"
}
}
}
数据:
模拟器:
模拟结果:
但是当我通过电子邮件尝试时它不起作用.
"shared_req3": {
"shared_uid": {
"$key": {
".read": "auth != null && auth.uid.email.replace('@','_').replace('.','_') === $key",
".write": "auth != null && auth.uid === $key"
}
}
}
数据:
模拟器:
模拟结果:
推荐答案
问题已解决.
它在模拟器上不起作用,因此请尝试代码.并且它必须是"auth.token.email"而不是"auth.uid.email".
It doesn't work on the simulator so try on the code. And it needs to be 'auth.token.email' instead of 'auth.uid.email'.
@FrankvanPuffelen非常感谢.
@FrankvanPuffelen Thank you so much.
这篇关于Firebase实时数据库与电子邮件的私有共享数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文