How to Change Firebase realtime database location? - firebase

I am currently building react application with firebase, i don't recall which location i setup for firestore but according to latest docs of firebase you could change location of firebase realtime database which i am unable to change from their website. Console log:-
#firebase/database: FIREBASE WARNING: Database lives in a different region. Please change your database URL to https://xxxxx-xxxx-default-rtdb.asia-southeast1.firebasedatabase.app (https://xxxxx-xxxx-default-rtdb.firebaseio.com/)
So, whenever i change url on the site and click go nothing works.

Try to set databaseUrl when you initialize the app.
firebase.initializeApp({
apiKey: 'key',
authDomain: 'domain',
projectId: 'id',
storageBucket: 'storage',
messagingSenderId: 'id',
appId: 'id',
databaseURL: 'paste-here-needed-database-url'
});

You can't change a location of a existing database. You would need to migrate it manually to a new one that you setup to the location you want. The migration is very easy. Just export the old database into a json file and import it to the new one. You can read more about it here.

There is no option to change the location of the firebase real-time database.
But there is a way to migrate,
You could create a new instance for the same project. Then you have to select the location that you need when creating the real-time database. After that, you have to export the old database and import it to the new one.

Related

Firebase realtime database warning via react native expo

I have just manually key in all the data in my firebase realtime database. But when i run my application (using react native expo), i get the following warning in my terminal:
[2023-02-06T09:53:41.782Z] #firebase/database: FIREBASE WARNING: Database lives in a different region. Please change your database URL to https://******-default-rtdb.asia-southeast1.firebasedatabase.app (https://*******-default-rtdb.firebaseio.com/)
What does this means? Does it means my firebase realtime database wont work at all?
Also I did a checked on my firebase realtime database URL, the url is the same as the one they ask me to change to before the URL in the bracket. What does this means? I am confused by this.
If I have to change the URL to the bracket one, how do i do it?
My current firebase config: I copied this from the firebase when I first started developing this app
Update following your comment and question update: It appears that your Firebase config object doesn't contain the URL of your Realtime Database instance.
You didn't share your Firebase config object but it seems that it contains the URL of Realtime Database instance based in the default region, i.e. the us-central1 region.
So you need to update your Firebase config object with the correct URL, corresponding to the asia-southeast1 region.
const firebaseConfig = {
apiKey: "API_KEY",
authDomain: "PROJECT_ID.firebaseapp.com",
// The value of `databaseURL` depends on the location of the database
databaseURL: "https://******-default-rtdb.asia-southeast1.firebasedatabase.app",
projectId: "PROJECT_ID",
// ...
};

Flutter user add their own firebase database

I am new in Flutter and i'm try to build aplication working with the database. In app I would for the user to add their own firebase database to working with with app. This is possible to add firebase database after build the app? Please information about this.
Thanks for any sugestions
You can specify the configuration data for the Firebase project in your Dart code as shown in this example in the FlutterFire docs:
FirebaseOptions get firebaseOptions => const FirebaseOptions(
appId: '1:448618578101:ios:0b650370bb29e29cac3efc',
apiKey: 'AIzaSyAgUhHU8wSJgO5MVNy95tMT07NEjzMOfz0',
projectId: 'react-native-firebase-testing',
messagingSenderId: '448618578101',
);
Future<void> initializeDefault() async {
FirebaseApp app = await Firebase.initializeApp(
options: DefaultFirebaseConfig.platformOptions,
);
print('Initialized default app $app');
This means you can get the necessary data from the user or in another way at runtime, and only then initialize the app.
If you don't want to request the user to enter these details manually, you can use the REST API for managing projects to get a list of the user's projects. There is no Flutter/Dart wrapper for this API that I know off, so you'll have to write that yourself.

When creating a new web app within firebase the database URL is missing

When I setup a new web app in firebase I noticed that the databaseURL is missing in the config.
apiKey: "",
authDomain: "",
projectId: "",
storageBucket: "",
messagingSenderId: "",
appId: "",
measurementId: ""
Those are the only values I can get. I haven't created a realtime database. But I have no need to.
I am working with the firebase plugin
"firebase": "^8.2.7"
in Nuxt but it is complaining that the databaseURL is missing. I throws the following error
Missing or incomplete config for current environment 'development': key 'databaseURL' is required!
So should I either get a databaseURL from firebase or is it a problem on the nuxt side?
When you create a new project in Firebase, it no longer immediately creates a Realtime Database for that project. For that reason, the databaseURL key is no longer included in the config, unless you've created a Realtime Database instance in the Firebase console.
Most Firebase SDK have been updated to deal with the fact that this databaseURL key is now optional, but it looks like you're on an environment where it is still required.
The two simplest solutions I can think of are:
Manually add a databaseURL key to the config. Most likely you can leave the value as an empty string.
Go to the database panel in the Firebase console to create a Realtime Database, and download the updated config.
Of course, if you actually use the Realtime Database in your code, the second option is the only one that will work.

How can I initialize the Firebase Admin SDK in spring-boot application using kotlin

I would like to get data from Firebase. I found some tutorials, but all is using Google Credential ServiceAccount to initialize firebase app. this's is tutorial that i found :
https://medium.com/techwasti/spring-boot-firebase-crud-b0afab27b26e , and else tutorial i found, almost like that too, is using ServiceAccount.
But the problem is i cannot get the ServiceAccount from this firebase because it's from third party. that's mean the owner of firebase don't want to give ServiceAccount.json to me, but they give me firebase config to me, like this :
const firebaseConfig = {
apiKey: "apkey",
authDomain: authdomain",
databaseURL: "databaseurl",
projectId: "projectid",
storageBucket: "storragebucket",
messagingSenderId: "messagesenderid",
appId: "appid",
measurementId: "measurementid"
};
So, how can i initialize this firebase using kotlin in my java springboot aplication?
i had try to find the solution, but not found anything,
I would be glad for any help.
If you want to initialize the Firebase Admin SDK, you will need a service account. There are no alternatives for this.
The config for the front end web app that you're showing here will not work at all. That config is only used for frontend apps that are acting as clients on behalf of the end user.

Why does the email-password example work?

Taking my first steps with Firebase. Just a few pointers to documents explaining what is going on will help.
I have set up a new firebase web project and connected my dev environment with the firebase sdk. Now when I drop the email-password quickstart into the project it works. (after enabling email/password sign in.)
But wait: This quickstart html file does not contain any configuration that the firebase console tells me to paste:
var config = {
apiKey: "xxx",
authDomain: "xxx.xxx.com",
databaseURL: "https://xxx.xxx.com",
projectId: "xxxx",
storageBucket: "xxx.xxx.com",
messagingSenderId: "xxx"
};
Does the local firebase server add the configuration in the background? When and where do I have to add this configuration to web pages?
If you check line 35 of that quickstart, you'll find this magic include:
<script src="/__/firebase/init.js"></script>
This is an auto-generated file by Firebase Hosting, that contains precisely the code that initializes the connection to the Firebase backend services of your project.
If you'd like to learn more about it, read:
Easier configuration for Firebase on the web
SDK imports and automatic initialization
SDK auto-configuration

Resources