Swift Firebase云Firestore-初始化集合
我正在Swift中开发一个聊天应用程序,当用户第一次创建聊天室时,Firebase中显然还没有这个聊天室。只有在创建第一条消息之前,所有内容都会生成 当我的应用程序第一次加载时,在viewDidLoad()中,我正在设置对该路径下聊天的引用(请记住它不存在): 因此,当我在下面添加快照侦听器时,用户在线程上创建他的第一条消息,侦听器不会为每个人启动(无论如何,我假设,因为它不会为我启动) 我确实喜欢这样,一旦你添加了第一条消息,它就会创建上面的整个文档结构,但这意味着我的第一个可能正在观看线程的用户(无论这种情况多么不可能)将无法获得消息 这是我试图防范的一种不常见的边缘情况,还是我需要这样做(伪代码) 我想知道是否有某种初始值设定项可以调用来为我创建结构,但仍然设置它,以便我发送给集合的第一条消息触发快照侦听器Swift Firebase云Firestore-初始化集合,swift,firebase,google-cloud-firestore,Swift,Firebase,Google Cloud Firestore,我正在Swift中开发一个聊天应用程序,当用户第一次创建聊天室时,Firebase中显然还没有这个聊天室。只有在创建第一条消息之前,所有内容都会生成 当我的应用程序第一次加载时,在viewDidLoad()中,我正在设置对该路径下聊天的引用(请记住它不存在): 因此,当我在下面添加快照侦听器时,用户在线程上创建他的第一条消息,侦听器不会为每个人启动(无论如何,我假设,因为它不会为我启动) 我确实喜欢这样,一旦你添加了第一条消息,它就会创建上面的整个文档结构,但这意味着我的第一个可能正在观看线程的
谢谢 你所做的是不必要的。创建集合不需要正式的方法。当您第一次将文档写入到集合中时,集合就开始存在了。您可以毫无问题地侦听空集合,即使在添加集合时该集合在仪表板中不可见,也应该调用侦听器。您所做的是不必要的。创建集合不需要正式的方法。当您第一次将文档写入到集合中时,集合就开始存在了。您可以毫无问题地侦听空集合,即使在添加该集合时该集合在仪表板中不可见,也应该调用侦听器。看起来您是对的-我刚刚尝试过,它成功了。我以前一定是把事情搞砸了,或者没有设置正确的断点,谁知道呢。不管怎样,我们现在都很好,谢谢你花时间帮助我。我会留下这个答案,以防它对像我这样的新手有任何帮助。看起来你是对的——我刚刚试过,它成功了。我以前一定是把事情搞砸了,或者没有设置正确的断点,谁知道呢。不管怎样,我们现在都很好,谢谢你花时间帮助我。我会留下这个答案,以防对像我这样的新手有所帮助。
reference = db.collection("chatrooms").document("\(chatRoomId)").collection("thread").document("\(threadId)").collection("messages")
IF (this collection doesn't exist yet) THEN
CREATE GROUP/THREAD/EMPTY MESSAGE COLLECTION
reference = db.collection("chatrooms").document("\(chatRoomId)").collection("thread").document("\(threadId)").collection("messages")
ELSE
reference = db.collection("chatrooms").document("\(chatRoomId)").collection("thread").document("\(threadId)").collection("messages")
END