我需要帮助找出使用Firebase的最佳方式。我正在制作一个twitter克隆,但与FireFeed不同,我的帖子是可变的。
我的数据库结构如下:
房间,基本上是一个你可以订阅的帖子提要。会议室成员可以向该会议室发帖:
用户,所有用户的全局列表:
帖子,实际帖子内容的全球列表:
学校,房间列表:
现在,前两个用例已经很好了。困惑来自于如何制作和编辑对帖子的引用。我的用例是:
用例0:用户想要创建一个房间。
用例1:用户想要订阅一个房间。
用例2:用户想在房间里做一个帖子。
这样做的问题是,如果另一个用户在我们的用户检索到用户列表后立即加入这个房间,那么他就不是接收这个新帖子的多位置更新的一部分。
当我试图更新帖子的评论数量时,我也面临着类似的难题。如果一个帖子有15条评论,并且有两个人同时在这个帖子中添加了一条新评论,那么在事务中完成时,全局帖子对象将正确更新为17条,但是根据之后扇出的顺序,每个人的帖子摘要对象可能有16条评论。当用户加入房间时,房间的大小也是如此。
我该怎么做呢?有没有一种方法可以更好地建模我的数据,或者有没有一种方法可以在事务期间正确地进行多位置更新?
当我看到你的用例时,我认为你让你的数据模型有点太复杂了。
Firebase对我来说就像:
这意味着我不会存储这个users/{userId}/feed/{postId}
,而是在客户端登录时执行以下操作:
这样,当某人发表新帖子/评论时,它将只在一个位置写入房间/{房间ID}/帖子/
我还会删除您的计数器喜欢/发布/评论,当我想要此信息时,请调用方法为数字儿童,以避免不必要的并发访问。
我正在尝试使用Firebase消息传递(web)。默认情况下,Firebase会搜索包含服务工作者的文件“Firebase messaging sw.js”。 服务工作者脚本应位于应用程序的绝对路径上!例如:http://localhost/firebase-messaging-sw.js 如何更改此默认位置?!搜索官方文档,我发现了这个方法:,它接受服务工作者注册,但试图使用它,我得到一个错误,
我需要每1分钟和每5米位移更新一次熔合位置(我知道这是一个错误的做法,但为了测试和在日志中显示),并且我在按下按钮后立即启动服务,我在logcat中获得位置,但只有一次。根据服务级别,onLocationChanged应该每1分钟调用一次,但它不会再次调用,即使我的GPS几乎每分钟打开一次,然后在之后关闭,但Logcat中仍然没有位置更新。我需要服务类来保持更新位置,而不影响UI或主线程 这是只显
问题内容: 我正在开发一个用于清洁服务的应用程序。在此应用程序中,员工(清洁工)可以读取由多个客户(用户)完成的作业(预订)列表。 所有清洁工都可以在“用户”节点中读取所有预订。最初,当用户将预订保存在数据库中时,该键的值为 ,这意味着清洁工尚未声明该键。 每当清洁工想要索取列表中存在的工作时,他将必须触摸按钮,该按钮将向Firebase数据库发出请求以将key的值修改为at路径。 一次只能允许一
我有一个后台服务,每12分钟更新一次位置。我们希望每5-6分钟测试一次位置更新,但在Android文档中我们发现: 为了降低功耗,Android8.0(API Level26)限制了后台应用程序检索用户当前位置的频率。应用程序每小时只能接收几次位置更新。 限制是每小时固定次数?
我想知道什么是电池效率最高的方式发送准确的位置更新到服务器/防火墙每5秒,即使应用程序关闭或手机重新启动。我尝试使用alarmmanager.setrepeating和android.intent.action.boot_completed接收器- 使用post一个延迟消息或runnable到一个处理程序不是一个可靠的解决方案,因为一旦应用程序被删除,位置更新就会停止。 是否有可靠的方法每5秒向服
这就是我的Firebase中的实时数据库在发送用户当前位置时的样子,而不使用唯一的ID。 但是,当在代码中使用push()时,它会不断地在每次刷新位置时生成新的ID。 是否可以在不生成新的唯一id的情况下不断更新用户的位置或完全删除对位置的更新?