Firebase实时数据库与电子邮件的私有共享数据? [英] Firebase Realtime Database Private Shared Data With E-Mail?

查看:51
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆