Dan*_*rwe 4 firebase firebase-realtime-database
我正在构建一个上面带有任意数量的“微型社区”的应用程序。当前,用户只能属于一个用户,因此当他们最初注册时,他们输入一个密码,该密码将其与相关社区相关联。
将这些“微型社区”(由未来的客户在应用程序中争夺空间的所有者所拥有)分隔为单独的Firebase项目或将所有数据保持在一起是否明智?
我建议您将所有社区保持在一起。首先,因为我不太确定您是否可以在同一应用程序中使用多个Firebase项目。
我建议您将该“社区”及其所有当前信息存储为数据库中的项目。例如:
{
"Communities":{
"CommunityKey1":{
"communityName":
"createdDate":
....
}
"CommunityKey2":{
"communityName":
"createdDate":
....
}
"CommunityKey3":{
"communityName":
"createdDate":
....
}
....
}
}
Run Code Online (Sandbox Code Playgroud)
并且,当您将用户添加到数据库时,只需向他们添加一个关联字段“ currentCommunity”或类似的字段,即可在其中存储该用户的关联CommunityID。然后,当您想为一个社区筛选用户时,只需使用:
FirebaseDatabase.getInstance().getReference().child("users").child("currentCommunity");
Run Code Online (Sandbox Code Playgroud)
您可以.equalTo("CommunityID")在该查询的末尾使用来过滤其他内容。我不是Firebase方面的专家,但是我正在做一个具有类似用户过滤功能的应用程序(使用组代替社区,它们可以属于多个),而最好的方法是使用此模型。
希望对您有所帮助!祝好运!
Firebase 现在支持在一个应用中访问多个项目。无需走微社区路线。这是有关如何执行此操作的教程:https : //firebase.google.com/docs/configure/
我目前在我的 Android 项目中使用它,所以如果您在设置它并在 Android 中实现它时遇到问题,请随时发表评论!
编辑
当您使用您的应用配置 Firebase 时,您默认使用一个数据库帐户。如果您想使用第二个(或更多),请继续阅读。
在您的活动或片段中,您必须使用您的所有帐户信息初始化 FirebaseOptions 实例,使用代表第二个帐户的标签名称初始化 FirebaseApp,然后获取 FirebaseApp 的实例,最后获取您的第二个帐户的 DatabaseReference 实例所以你可以随意使用它。这是我使用的代码块:(注意:您作为 FirebaseOptions 实例的参数输入的信息与您的第二个数据库帐户相关联):
private void initSecondFirebaseAcct()
{
FirebaseOptions options = new FirebaseOptions.Builder()
.setApplicationId("<your application id>")
.setApiKey("<your api key>")
.setDatabaseUrl("<your DB url that ends in 'firebaseio.com/' ")
.build();
try
{
FirebaseApp.initializeApp(this, options, "<database tag>");
}
catch (Exception e)
{
Log.d("Firebase error", "App already exists");
}
mMySecondApp = FirebaseApp.getInstance("<database tag>");
mSecondDBRef = FirebaseDatabase.getInstance(mMySecondApp).getReference();
}
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
| 归档时间: |
|
| 查看次数: |
5400 次 |
| 最近记录: |