菜鸟教程小白 发表于 2022-12-11 19:51:50

ios - Firebase 加入多个节点对象


                                            <p><p>我在尝试在 Firebase 中构造我的数据然后检索它时遇到问题,以满足此用例:</p>

<p>我有“用户”和“组”</p>

<pre><code>{
Users:
    LpWgezRkC6EWS0sjXEWxhFl2: {
      userName: &#39;John Doe&#39;
      etc...
    }
},
Groups:
   12345: {
          PropertiesID: 78765,                     
          GroupName: &#39;MyPool&#39;,
          GroupOwner: &#39;LpWgezRkC6EWS0sjXEWxhFl2&#39;
          GroupPassword: &#39;jkhdfjkhfdkjhdfkjhfsae4euhh4FDDC&#39;
          etc...
   }
}
</code></pre>

<p>任何用户都可以加入任何组。</p>

<p>我将这种用户配对(关系)存储在“UserInGroups”节点中的组中。</p>

<pre><code>{
    UsersInGroups: {
      DUmwewIfzAbfWZN4NjS8mhX82: {&lt;- UserId
         12345: true                &lt;- GroupId
      },
      LpWgezRkC6EWS0sjXEWxhFl2: {   
         12345: true               
      }
    }
}
</code></pre>

<p>最后,每个组都有一个“属性”节点,用于控制组的细节/行为。 </p>

<pre><code>{
Properties:
   78765: {
          PropertyName: &#39;Custom&#39;,
          dateCreated:&#39;20170601&#39;,
          etc...
   },
   76421: {
          PropertyName: &#39;Admin&#39;,
          dateCreated:&#39;20170602&#39;,
          etc...
   }
}
</code></pre>

<p>话虽如此,我的应用程序有一个仪表板 View ,它在 UICollectionView 中显示所有组/属性信息。它应该显示如下信息:</p>

<ul>
<li>组名</li>
<li>GroupOwner</li>
<li><p>基于“组”节点中的 PropertiesID </p>

<ul>
<li><p>属性名称</p></li>
<li><p>属性创建日期</p></li>
</ul></li>
</ul>

<p>我将如何“加入节点”以便能够检索组信息以及属性信息;</p>

<p>基于登录到应用程序的用户是否属于组(因此在 UsersInGroups 节点中有一个条目)?!</p>

<blockquote>
<p>UPDATE</p>
</blockquote>

<p>关于数据结构的后续问题...</p>

<p>是否可以进行三 (3) 次连接以获取我希望在 UIColloectionView 中显示的所有信息。</p>

<p>类似这样的:</p>

<pre><code>let ref = firebase.database().ref(&#34;UsersInGroups&#34;)
ref.child((Auth.auth().currentUser?.uid)!).queryEqual(toValue: true).observe(.value, with: { snapshot in

    let groupsRef = firebase.database().ref(&#34;Groups&#34;)
    groupsRef.child(snapshot.key).observe(.value, with: { snap in

      let propertiesRef = firebase.database().ref(&#34;Properties&#34;)
      ref.child(snap.key).queryEqual(toValue: true).observe(.value, with: { gamesnapshot in

            //Get all the info from firebase

      })
    })
})
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在您下载“群组”节点的所有地方,您是否需要特定群组的属性?如果这样做,您可以在“组”中创建一个新节点,将其命名为属性,并在其中列出所有属性。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Firebase 加入多个节点对象,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/44533078/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/44533078/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Firebase 加入多个节点对象