Firebase + Swift。 如何删除数据。
作为Firebase的“早期”用户之一,我建议将其实施到我所有客户的项目中。 我喜欢便利性,也喜欢Firebase的强大功能。
在这个故事中,我将说明如何使用Swift从Firebase删除数据。
假设我们已经构建了一个名为Post的社交媒体应用程序。 这是每个社交媒体产品中使用的非常常见的模型。
一个简单的例子可能是:
struct Post {let userID:String
let postID:字符串
让标题:字符串
let imageURL:字符串
}
例如,此帖子模型包含发布了该帖子的用户的userID,标题(和可选文本)以及一个imageURL。 存储更多的元数据(例如已发布该数据的用户的名称),也许是化身的链接,日期戳,位置等,将是非常常见的。
但是最重要的部分是postID。 postID是我们将用于存储和删除帖子的内容。
记住,我们需要postID(就像我们的userID)一样100%唯一,这非常重要。 2个具有相同ID的帖子会互相覆盖,并导致无尽的问题。
Firebase包含创建唯一子ID的功能,但为了使其变得简单,我们在这里仅使用1970年以来的毫秒数。软件开发中一个非常常见的变量。 并且在同一毫秒内独一无二。
扩展日期{var asUUID:字符串{
让asInteger = Int(self.timeIntervalSince1970)
返回String(asInteger)
}
}
在我们的小助手扩展程序中,我们将创建一个String,该字符串可用于生成一个随机的postID,该ID也可以在生成帖子的日期同时工作。 再有,这种方法不能保证我们的帖子保持唯一性,因此不能扩展,因为自1970年以来,有2个用户可能在完全相同的毫秒内创建了一个帖子。对于拥有10亿用户的Instagram,我相信这很常见。 对于我们的示例,有2个假设用户没有。
我们可以通过调用以下内容来初始化对象:
let post = Post(userID:user.userID,
postID:Date()。asUUID,
标题:“用户输入的标题”,
imageURL:“ http:// theLinkToTheImage”
)
上载post对象后,我们的Firebase结构可能如下所示,其中1535423643是Post对象的postID。
要遵循当前的方法,重要的是我们使用postID作为最后一个孩子来存储帖子。 例如:
self.firebaseReference.child(“ Posts”)。child(post.postID)
如果现在要删除此帖子,则可以创建一个经理类作为帮助程序,我们可以调用该管理器类以单行删除帖子。
为不同的逻辑部分创建不同的类是一个很好的主意。 这种方法被称为“关注分离”。 它为我们提供了易于维护和测试的干净代码。 这样的类的一个示例是:
类FirebaseManager {静态让共享= FirebaseManager()
私人让参考= Database.database()。reference()
} // MARK:-删除功能
扩展名FirebaseManager {公共功能removePost(withID:String){
让参考= self.reference.child(“帖子”).child(withID)
reference.removeValue {错误,_ in
打印(error.localizedDescription)
}
}
}
删除帖子并调用函数,我们需要做的是:
FirebaseManager.shared.removePost(withID:post.postID)
// 要么
FirebaseManager.shared.removePost(withID:“ 1535423643”)
重要的收获是,为了能够从Firebase中删除孩子,我们需要存储对其ID的引用,并设置其自己的ID路径。 或将路径存储到模型中。 例如,如果我们要删除ID为123的对象,则在Firebase中,我们需要将找到对象的最低子对象设置为123。
现在玩吧! 别忘了留下一些爱。
- iOS:Objective-C:Firebase:是否可以先读取caching的数据以供参考?
- Firebase iOS无法获取默认标记Error Domain = com.firebase.iid Code = 6“(null)”
- Firebase Swift 3完成处理程序Bool
- Swifty Firebase API @ Ka-ching —第4部分
- 如何从Firebase逆转项目的顺序
- 如何过滤Swift中的Firebase数据?
- 适用于iOS的Firebase,无效的API密钥
- Firebase在创build新用户时会注销当前用户
- Firebase – 如何在observeEventType = Value中获取关键值