FireRecord is a framework written in swift which brings the ActiveRecord architecture as a wrapper to Firebase SDK on iOS. The main idea is to make iOS development with Firebase (Firestore and Storage) still more productive with the well-known Active Record Pattern from Rails community.
If you liked this library take a look at the Android Kotlin version
class User: FireRecord {
var age: Int?
var name: String?
var photo: FirebaseImage?
}
let user = User()
user.name = "Jhon"
user.photo = FirebaseImage(UIImage())
user.save { error in print(error ?? errorMessage) }
User.all { users in
users.flatMap{ $0.name }.forEach{ print($0) }
}
User.findFirst { user in
print(user.name ?? "First users doesn't have name")
}
User.findLast { user in
print(user.name ?? "Last users doesn't have name")
}
User.findFirst(3) { users in
users.forEach { user in print(user.name ?? " User doesn't have name")}
}
User.findLast(3) { users in
users.forEach { user in print(user.name ?? " User doesn't have name")}
}
user.name = "My new Name"
user.update { error in print(error ?? errorMessage) }
user.destroy { error in print(error ?? errorMessage)}
User.order(byProperty: "name").where(value: "Alisson").find { users in
users.flatMap{ $0.name }.forEach{ print($0) } //print all names
}
Professional.order(byProperty: "phone").where(value: "98984933").find { professionals in
professionals.flatMap{ $0.phone }.forEach{ print($0) } //print all phones
}
User.order(byProperty: "name").findLast { user in
print(user.name ?? "Property not present")
}
User.order(byProperty: "name").findLast(3) { users in
print(users.count)
}
User.order(byProperty: "name").findFirst { user in
print(user.name ?? "Property not present")
}
- Basic CRUD functionality with Realtime Database
- Map queries from Realtime Database
- Manage image/file properties (send/retrieve from Storage)
- Add realtime Capabilities
- Add relationship mapping
- Add offline capabilities
PS: We are going to chage Realtime Database for Cloud Firestore soon. Stay Tunned!
See open issues for more details
FireRecord is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "FireRecord"
- Victor Alisson, victoralissont5@gmail.com
- David Sanford, dsanfordseu@gmail.com
FireRecord is available under the MIT license. See the LICENSE file for more info.