我正在使用Firebase构建一个涉及用户的项目。有一个已知的Firebase错误,即使用户已从Firebase身份验证部分中删除,该用户仍然能够访问该应用程序并且仍然具有对数据库的读/写权限。我相信这与Firebase在用户设备上存储的token有关。作为解决此问题的方法,我实现了“用户检查”,我的应用程序将检查登录用户的用户ID是否存在于我的实时数据库中。这样我所要做的就是从实时数据库中删除userID节点,这将导致此检查失败,从而使用户永久注销。我遇到的问题是对observeSingleEvent(of:.value...)的调用偶尔不会返回。我的意思是,有时它会像预期的那样立即
我一直在尝试使用实时数据库从Firebase获取数据。我想检查iPhone中的联系人,然后如果任何联系人号码与db中“数字”表中的任何号码匹配,那么我必须从中获取user_key然后使用该key,我必须获取相应的详细信息来自用户表。fornumberinnumbers{Database.database().reference().child("numbers/\(number)").observeSingleEvent(of:.value,with:{(snapshot)inifsnapshot.exists(){letuserKey=snapshot.valueas!String/
按下按钮时,我正在对从Firebase获取的数组进行某些过滤。例如其中之一是:self.PersonalSearchesList=PersonalSearchesList.sorted{$0.users>$1.users}self.tableView.reloadData()问题是我想要在View最初加载时我想要应用其中一个过滤器..但我不知道在哪里运行过滤器。如果我在查询后追加数组时运行排序,我的信息/单元格都会被不正确的信息所淹没。我无法在viewDiDLoad中运行它,因为firebase的观察者正在ViewDidLoad中运行,此时不会填充数组。编辑:currentUserFi
我将Firebase数据库与swift结合使用。当我使用databaseReference.observe(...)进行观察时,我可以轻松地从DatabaseReference中删除观察者:databaseHandle=databaseReference.observe(.value,with:{(snapshot)in...},withCancel:{(error)in...})...databaseReference.removeObserver(withHandle:databaseHandle)我的问题是当我使用databaseReference.observeSingleEv
我正在尝试获取一些用户的个人资料图片。这是我开始的代码:databaseRef.child("Users").queryOrderedByKey().observeSingleEvent(of:.childAdded){(snapshot)in}我正在尝试学习Swift2教程;但是,我使用的是Swift3。我已经尝试调整代码,但我没有成功,因为出现以下错误Ambiguoususeof'observeSingleEvent(of:with:)'这个错误在第一行。我该如何解决这个问题?谢谢! 最佳答案 Swift3的工作解决方案:dat
我的实时数据库是这样的:如您所见,它只包含1个child。几分钟前,我在RunningGames中还有4个child。我在浏览器中删除了它们。现在调用这个时:privatelazyvarrunningGamesRef:FIRDatabaseReference=FIRDatabase.database().reference().child("RunningGames")self.runningGamesRef.observeSingleEvent(of:.value,with:{(snapshot)->VoidinforgameSnapinsnapshot.children{letid
我想在应用启动时获取所需的应用版本号。但是我找不到正确的key。我要获取此代码。我使用observesingleevent因为我使用这种方法来检查所需的应用程序版本号。此方法仅在应用程序开始执行检查时触发。funcgetVersion(completionHandler:@escaping(Result)->()){letref:DatabaseReference!=Database.database().reference().child("version").child("IOS")ref?.observeSingleEvent(of:.value,with:{snapshotin
背景:我有一个应用程序,新用户可以在其中填写注册表单(包括用户名、电子邮件和密码)来注册帐户。当新用户提交表单时,应用程序会检查其Firebase数据库以查看用户名是否已被占用。这里的问题是observeSingleEvent(of:with:)没有得到最新的数据。当我直接从Firebase控制台更新数据时,更改不会反射(reflect)在observeSingleEvent(of:with:)的返回结果中。即使在应用重新启动之间,也不会返回新的数据更改。关于这个问题,我唯一看到的是here.用户说在使用observeSingleEvent(of:with:)时不启用持久性。但是,我禁
我非常喜欢使用Firebase编写代码。它是具有各种不同工具集的出色后端。但是我错过了一种在启用持久性时检查更新数据路径的简单方法。我认为这不是一个罕见的用例,因为我经常需要我的应用程序根据最新的服务器数据以某种方式运行,只需要读取一次。我通常会使用observeSingleEventOfType,但是当启用持久性时它就没用了,因为它willneverretrievethelatestserverdata.我不明白为什么。应该添加一个选项以跳过本地缓存并仅查找服务器数据。禁用持久性可以解决此问题,observeSingleEventOfType将按预期工作。但这意味着需要自己重新实现所