Git Product home page Git Product logo

firerecord-ios's Introduction

FireRecord-iOS

Version License Platform Swift 4.0

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

Example

Inherit from FireRecord

class User: FireRecord {
  var age: Int?
  var name: String?
  var photo: FirebaseImage?
}

Init your model

let user = User()
user.name = "Jhon"
user.photo = FirebaseImage(UIImage())

Save

user.save { error in print(error ?? errorMessage) }

Read

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")}
}

Update

user.name = "My new Name"
user.update { error in print(error ?? errorMessage) }

Delete

user.destroy { error in print(error ?? errorMessage)}

Query

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")
}

Features

  • 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

Requirements

Add Firebase to your project

Installation

FireRecord is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "FireRecord"

Authors

License

FireRecord is available under the MIT license. See the LICENSE file for more info.

firerecord-ios's People

Contributors

victoraliss0n avatar davidsanf0rd avatar vitorfmuniz avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.