Firebase databases replication - ios

I need a data from one Firebase project's database in 2 iOS apps (with different bundle names). So, the question is:
Is it possible to configure replication between 2 different Firebase project's databases? Or is it possible to use 1 Firebase project (1 database) for 2 ios apps?

There is no built-in feature to replicate Firebase Databases.
I'm not aware of any tools that replicate between two Firebase Databases. The closest is probably making a backup from one database and restore to another, but it'll be a parent/child setup.
Yes, multiple iOS apps can talk to the same Firebase Database. Just click to add another app on your project's Firebase Console.

Related

Need advice on syncing data between iOS devices in one app

I built an in-house app for selling tickets and checking-in students to our High School dances. At the moment the app can scan a QR code with the student's information and add their name to either a "Sales" list or "Check In" list. Then the app can export these lists to a CSV file and we compile all the data.
App works perfectly as expected. NOW I want to be able to sync data between multiple devices so that every device will see an up to date Sales and Check in list. The check in list is most important because then our faculty chaperones can all see who has arrived to the dance in real time. I figured I would need to build a server to hold all the data as opposed to on the individual devices like I am doing now (CoreData). Can anyone please give me guidance or advice as to where to go from here? I am using Swift and developing for iOS 10.
I would just answer the general approach to tackle this problem since the implementations would largely be depending on many factors (what database technology is available, the platform of the server, etc.)
You are absolutely right, you need a server to hold the data. Technically speaking, it is a database that holding the data. Thus, you need a database running on your server (there are tons of selections here: Maria DB, SQL Server, Mongo DB, etc.).
Next, you need to build a web service on top of the database so that the iOS app can interact with the database (add/delete/update/read rows). Web service is a very common layer in full-stack application since you normally don't access the database directly.
Finally, you need to guard your web service with some sort of authentication. I.e. you don't want any random person out there to be able to access your web service without permission. There are many implementations out there to secure your web service and you should be able to google that easily.
Firebase might be the easiest solution. Its pretty simple to setup, and its pretty simple to set up data persistence when you go off line. I'm big on trying to stick with the built in Apple services, but Firebase is hard to beat for simple apps.
Take a look at CloudKit, or perhaps Firebase or Azure, as services that will provide a back end server for you, and give you a tested SDK to build against.

how to make flurry start gathering data at a certain date

Initially I had a single app registered with Flurry.. we used this app pre-launch for testing etc.. and flurry captured all the data from my testers etc. We have recently launched the app and basically made flurry only capture the data from live users (ie so that it doesn't get polluted by our testers actions).. is there a way to instruct flurry to erase or hide all the data it captured prelaunch and just show us the post launch data?
One of way of doing this is to select which version u're interested in looking at
the problem with this approach is that it only gives you stats for a single version..
another approach is to simply delete the versions that contains the polluted data.. this way you can go over the results of all the versions that have accurate data
Flurry recommends that you create two or more projects for each app. You can use one project for development and testing and another for the published version of your app. Just don't forget to swap the api key when you publish the app.
This also has the benefit of splitting your versions up so you do not approach the limit of 1000 versions per project.
Alternatively you can use the timeframe filter to remove data that precedes the publication date of your app.

link 2 iPhones for a single iOS app database

I'm developing an app for my summer iPhone class that is designed for couples, and am not sure the best way to have two different users phones reading and writing to the same database for a single account. The two users create and grant points to each other for "rewards", "penalties" and "prizes". I'm attempting to put the local databases into CoreData and then push it into iCloud. However, I'm only finding ways that that works for a single persons app. This is a two player game that needs to update a shared database. I would greatly appreciate if you would have any suggestions on ways to either send notifications directly to each and maintain congruent separate local databases, or to have a single back end database for two users in a single account that both users' phone can push and pull from to read and write. I'm having trouble finding the right path to pursue for this.
Thanks.
You can easily save Database on server side with the help of many mechanism like PHP Script is the best example for this.
link - Advices on server implementation for server/client structure iOS App development?
There is a third-party framework for iOS called Parse. It's a terrific backend service that adds a cloud database. You can create objects and store it in the cloud and access it anytime, and it comes with push notifications and analytics functionality. It's tuned for many platforms, including iOS and it's straightforward to access all of its functionalities.
The site is here: https://parse.com
Whenever you try to use one database for multiple device, you need to create / save database in server side or you can try Parse. because local database is always used for device specific.

How to filter devices in Flurry analytics?

We are beginning to use Flurry analytics in our iOS applications, but the production data is polluted by emulator sessions and QA device sessions.
Is it possible to avoid that in other ways than by using separate Flurry accounts for dev/QA and production? I cannot find options to filter data in the Flurry admin console.
I have read suggestions to use an invalid key for non-release configurations, is there nothing better?
Using a separate API key for testing/development and for the live version of the app is the best way to prevent test sessions from mixing with your live data. You can solve the problem going forward by creating a new project for future testing.
Looking backwards one way to filter out the data would be to use the time frame filters to remove the testing data from the metrics display.
If you have specific app versions that contain only testing data those can be deleted individually, but be very cautious with this approach. Version deletion is irreversible.

Which database can be used with Xcode and at the same time be populated through a website?

We are trying to create an iPhone application that will automatically receive data from a database. Which is a database that will work with Xcode. Our goal is that users can go to our website and input information. That data will be recorded to a database. Once the user downloads our app, the info should then be retrieved from the database and included in the app. We are wondering what database is suitable. It must be able to receive information from a website AND submit it to an application.
You're unlikely to find a iOS "aware" database that can automatically sync content over the internet.
However, you can of course obtain the data over the internet yourself and then insert it into the local database on the device, in which case the popular (and supported out of the box) SQLite would seem like an obvious choice.
As #Deepak also suggests, you could use Core Data which is a (sort-of, ish) ORM that can automatically use SQLite as it's underlying storage mechanism.
The solution that most people use in this case is to use an RDBMS like MySQL and build a web-service layer on top of the database for the entities that your iPhone app is interested in.
This way, when a user goes to the web-app, they can add the data that you allow them to add there, and later on they can access the same data from the iPhone app via the web-service layer also.
Couchbase's new iOS-Couchbase framework is in beta right now - all the functionality of Apache CouchDB on your favourite developer platform - at https://github.com/couchbaselabs/iOS-Couchbase. the iOS release is new but we're looking for it to go places!
Its awesome sync abilities would allow you to pull down any relevant content from your website via HTTP/JSON, or further formats using shows and lists if needed. Pushing data the other way is just as easy. Sync can be continuous, or on demand, bidirectional or one way.
Take a look at some of the Couch App frameworks (not for iOS but for your website)
http://techzone.couchbase.com/community/articles/couchdb/recipes
http://www.mail-archive.com/user#couchdb.apache.org/msg13928.html lots of comments on this thread
A+
Dave

Resources