Search code examples
javafirebase-realtime-databasefirebase-admin

Firebase Realtime Database - how to manage database rules using java sdk


I would like to set the database rules for my realtime database using the java sdk. I created a FirebaseDatabase object but I wasn't able to find out how to get/set the database rules using it.

val options = FirebaseOptions.builder()
    .setDatabaseUrl("https://my-database.europe-west1.firebasedatabase.app/")
    .setCredentials(GoogleCredentials.fromStream(File("/path/tom/my/key.json").inputStream()))
    .build()
val defaultApp = FirebaseApp.initializeApp(options)

val defaultDatabase = FirebaseDatabase.getInstance(defaultApp);
// and here I would like to fetch the current rules and be able to set the new one

I've found this piece of docs: https://firebase.google.com/docs/database/rest/app-management and tried

println(defaultDatabase.getReference(".settings/rules.json"))

but I got only

com.google.firebase.database.DatabaseException: Invalid Firebase Database path: .settings/rules.json. Firebase Database paths must not contain '.', '#', '$', '[', or ']'

How to do it ?


Solution

  • The .settings pseudo-node is not exposed in the Java Admin SDK. If you want to manipulate the rules from your Java code, you'll have to call the REST API from there.