Hosting Firebase on your own server - ios

I'm an iOS developer with little backend knowledge. I've been using Firebase to create the backends for my apps for over a year now and it's worked great. My latest client wants an app with a relatively simple backend, which I would have no problem creating with Firebase, but due to their privacy policy they require that all collected data be stored on their in-house servers. Interestingly they have a server room with IT techs, but no developers.
My question is: is there a way to host Firebase on your own server instead of using one of Google's? I've searched around for the answer and unfortunately the consensus seems to be no, however, I have seen a few posts from years ago saying that this service is coming in the future. Does anyone know if its here yet?

No, this service is not here yet. One alternative you might consider is Parse Server - an open service, host yourself, replacement for Parse.
https://github.com/parse-community/parse-server
https://www.raywenderlich.com/146736/parse-server-tutorial-ios

Related

Connecting AWS RDS and server instance in iOS app Xcode [duplicate]

This question already has answers here:
How to connect amazon RDS in iOS
(3 answers)
Closed 3 years ago.
I am building an app for the first time and it requires a back-end connection with the database. I've established a working EC2 and RDS instance in AWS (also trying out for the first time). I don't know how exactly to establish a connection in Xcode with a .php file, there's a couple missing holes in my knowledge that I hope someone can clear up. Every online resource I've looked up doesn't use the exact stack that I'm using so I get confused as to where to go from here.
How would I go about connecting to my Amazon RDS (mySQL) credentials inside my XCode project? Also would I save a separate .php file with the server connection and insert the URL of the file from my local directory? I know I have an endpoint URL provided by RDS, I'm just confused as to how to go about connecting all of this in order to start the POST/GET requests. There isn't a clear tutorial on this, so hope to get some answers here.
The reason why you can not find tutorial on this subject is because it is not considered a good architecture practice to connect backend databases directly from mobile applications. Not only you have the problem of providing the mobile application with the database credentials, in a secure way, but also it would oblige you to implement the access and authorization logic in your mobile app and will create a hard dependency between your mobile and the database endpoint. What if it crashes ? What if you need more CPU/Storage on the server side to accommodate client requests etc ..
The correct architecture is to expose the data required by your mobile app through a API. AWS has several options to let you create an API (API Gateway and AppSync). In both cases, the amplify command line will generate the XCode Swift code for you for easy integration with your app.
See https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-generate-sdk-ios-swift.html
See an iOS code sample here https://github.com/sebsto/reinvent2018-mob320 (it doe snot have RDS integration in the backend, I will leave this as an exercise for you)
Searching the web, you will find other persons having post similar questions and having received similar answers :
https://forums.aws.amazon.com/thread.jspa?threadID=136902
How to connect amazon RDS in iOS

MySQL server and iOS app

I am running a site right now with a quite big MySQL database.
Now, I want to create an app. I will need to use obviously a database de to the fact my data are already there.
Thus,
1) Should I keep using the MySQL server and my iOS app will connect to this MySQL serve for getting data?
2) is there any problem if I use the MySQL server ? Security issues maybe?
3) if I have to change the MySQL server, what database infrastructure I need to build and work with?
I am totally newbie on iOS apps. And now I planning to face any issues my iOS app will have.
Since you are running a site with MySQL I think a lot of your questions have been answered. You already have seen how your MySQL database performs in a production environment. Unless you believe that your iOS user base is going to be much larger or perform very different functions you currently have valid performance benchmarks.
In terms of how it relates to the iOS app, you can build an API, or make calls to https pages on your website that will return the information required for your app. For information on how to do this, check out this AFNetworking tutorial.
In the end, there might be some reasons that your current database isn't the right choice for your app. But since the app won't be interacting directly with the database, you can change it out later and you will only have to integrate the database with the interface and not change the iOS app at all.

how to build a server service that supports iOS application

I'm kind of familiar with building iOS applications but I need some assistance.
I am trying to build a new application and I need some startup help:
basically, the application should have a log in screen via Facebook/google+.
A back-end server that stores data to be provided to the application's users. This server should push notifications each time a new data is uploaded to the server.
I know that the idea is so familiar and can be googled, but I need some kind of a start point, like resources, or what should I be familiar with before I start building the application. I also have no idea about the servers and how to build services.
Thank you so much
Since you seem to be a beginner, I would recommend checking out Parse. They have a nice iOS SDK to handle cloud data storage, server processing and push notifications. Tutorials can be located here. Best of all - It's free unless you have massive traction. (Which I am assuming you don't yet)
Parse handles third party logins too. Check this out.

QuickBooks Online from Desktop application

I am new to QuickBooks and all my searching has been leading to conflicting answers. I really need to know this to move forward.
We have an on-premise application (legacy MFC app if that matters). Some of our customers use QuickBooks Online and we can send information up to it. In the past we have used QBXML which I believe is not supported for online anymore.
Everything I read at intuit.com talks about web applications. I think I have to have OAuth security and I do not see how intuit is supporting that from a non-browser based application.
I cannot believe that intuit would not have an answer for this situation so I must be confused.
So, can I send data to QuickBooks Online from a desktop application?
If yes, which API/SDK should I be using?
If I need OAuth how exactly do I implement this?
Does any of this require an independent security review?
I think I just need a little help getting pointed in the right direction.
Thanks
Unfortunately I think you have the most difficult scenario in the QB ecosystem.
I've used the DevDefined OAuth library with some success:
https://github.com/bittercoder/DevDefined.OAuth
You can get this to work on the desktop if you have a localhost server that the browser can redirect to on the OAuth callback.
Anything that talks to QBO needs to use the QBO API v3 now.
For a custom app that talks to QBO, you would need to set up your app # Intuit to run in development mode, so it wouldn't have to go through their security review, etc. But that limits the number of connections you can have (I think it's 10). So it might not work in your case. Also, if you're distributing your app to "normal" customers it may not be the best user experience, and probably isn't practical, to set it up so OAuth will work on the desktop.
You might just have to bite the bullet and create an intermediate web service on something like Azure or Heroku, then go through the whole process of getting Intuit to bless your app for production.

Couchbase Lite how to get data from Cluster without sync it to local database

I'm building a social network, and want to use Couchbase as backend, but if I'll use sync gateway after sometime I'll have a lot of data on device that user doesn't need to use.
How I can get/post/put info to Couchbase Server without sync function or how I can clear local database without deleting information from server?
I didn't have a 100% working solution, but want to share some information that I've got from community and representatives of Couchbase London & California.
First of all you can use CouchCocoa for working directly with SyncGateway, but it doesn't work as you expects, some part of your needs you can resolve using CouchCocoa.
Another way to build your own API proxy, but when you're a mobile developer only, it isn't a great idea. But, it could be created on different languages.
And as the last one thing is using Purge function. There are links to documentation that Couchbase team have now: http://wiki.apache.org/couchdb/Purge_Documents and http://couchbase.github.io/couchbase-lite-ios/docs/html/interfaceCBLDocument.html#a06bf7fd41678953924a56f76a921fe5a
Also you can go to Google Group and see all issues and how to fix/resolve/find workaround. Also, from our discussion with Couchbase representatives there will be a thread about how to get rid of synced info and so on. Link to Google Group https://groups.google.com/forum/#!forum/mobile-couchbase.
if you have any question, ask me, I'll try to help in the information area that I've already discovered.

Resources