【问题标题】:Firebase database modeling privacy settingsFirebase 数据库建模隐私设置
【发布时间】:2019-03-24 18:03:13
【问题描述】:

您好,我正在使用 firebase 实时数据库,并且我实施了隐私设置,因此用户可以决定显示或隐藏哪些信息。

这是我的方法。我是这样构造数据的好方法吗?

{<br>
  "friends" : {<br>
    "7BDcIre74IfE34DL1T1ZfzrZLcZ2" : {<br>
      "a3AiwvaXrHSHM05xBFq9X0TCBwi1" : {<br>
        "a3AiwvaXrHSHM05xBFq9X0TCBwi1" : true,<br>
        "rule1" : true<br>
      }<br>
    },<br>
    "a3AiwvaXrHSHM05xBFq9X0TCBwi1" : {<br>
      "7BDcIre74IfE34DL1T1ZfzrZLcZ2" : {<br>
        "7BDcIre74IfE34DL1T1ZfzrZLcZ2" : true,<br>
        "rule2" : true<br>
      }<br>
    }<br>
  },<br>
  "rules" : {<br>
    "rule1" : {<br>
      "showDate" : true,<br>
      "showName" : false<br>
    },<br>
    "rule2" : {<br>
      "showDate" : false,<br>
      "showName" : true<br>
    }<br>
  },<br>
  "users" : {<br>
    "7BDcIre74IfE34DL1T1ZfzrZLcZ2" : {<br>
      "Geburtsdatum" : "01.01.2000",<br>
      "name" : "Alex"<br>
    },<br>
    "a3AiwvaXrHSHM05xBFq9X0TCBwi1" : {<br>
      "Geburtsdatum" : "01.01.2000",<br>
      "Name" : "Peter"<br>
    },<br>
    "eAnWvNGh13N31nUEHszOzjUfL9d2" : {<br>
      "Geburtsdatum" : "01.01.2000",<br>
      "Name" : "Oskar"<br>
    }<br>
  }<br>
}<br>

【问题讨论】:

  • 谢谢我在设置 json 样式时遇到问题。

标签: firebase firebase-realtime-database nosql


【解决方案1】:

不是。如果您想添加更多规则组合,它很快就会变得复杂且难以实施。您可以为设置创建一个模型类,并在每个朋友用户 ID 下创建一个 privacy_settings 节点,并在其下设置值。

数据结构:

"a3AiwvaXrHSHM05xBFq9X0TCBwi1" : { "7BDcIre74IfE34DL1T1ZfzrZLcZ2" : { "privacy_settings": { "showDate" : false, "showName" : true } } }

Java 模型类:

    import android.os.Parcelable;

public class PrivacySettings implements Parcelable
    {
        boolean showDate,showName;

        public PrivacySettings(boolean showDate, boolean showName)
            {
                this.showDate = showDate;
                this.showName = showName;
            }

        public boolean isShowDate()
            {

                return showDate;
            }

        public void setShowDate(boolean showDate)
            {
                this.showDate = showDate;
            }

        public boolean isShowName()
            {
                return showName;
            }

        public void setShowName(boolean showName)
            {
                this.showName = showName;
            }

        @Override
        public int describeContents()
            {
                return 0;
            }

        @Override
        public void writeToParcel(Parcel dest, int flags)
            {
                dest.writeByte(this.showDate ? (byte) 1 : (byte) 0);
                dest.writeByte(this.showName ? (byte) 1 : (byte) 0);
            }

        protected PrivacySettings(Parcel in)
            {
                this.showDate = in.readByte() != 0;
                this.showName = in.readByte() != 0;
            }

        public static final Parcelable.Creator<PrivacySettings> CREATOR = new Parcelable.Creator<PrivacySettings>()
            {
                @Override
                public PrivacySettings createFromParcel(Parcel source)
                    {
                        return new PrivacySettings(source);
                    }

                @Override
                public PrivacySettings[] newArray(int size)
                    {
                        return new PrivacySettings[size];
                    }
            };
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 2011-05-23
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多