Я делаю приложение с новым запущенным сервисом Google Firebase.
Мой бэкэнд-сервис написан на PHP, но я не нахожу, как аутентифицировать мой сервер с помощью базы данных Firebase.
Google предоставляет java / node.js SDK для аутентификации сервера, как показано ниже:
https://firebase.google.com/docs/database/server/start#authenticate-with-limited-privileges
// Initialize the app with a custom auth variable, limiting the server's access
Map<String, Object> auth = new HashMap<String, Object>();
auth.put("uid", "my-service-worker");
FirebaseOptions options = new FirebaseOptions.Builder()
.setDatabaseUrl("https://databaseName.firebaseio.com")
.setServiceAccount(new FileInputStream("path/to/serviceAccountCredentials.json"))
.setDatabaseAuthVariableOverride(auth)
.build();
FirebaseApp.initializeApp(options);
// The app only has access as defined in the Security Rules
DatabaseReference ref = FirebaseDatabase
.getInstance()
.getReference("/some_resource");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String res = dataSnapshot.getValue();
System.out.println(res);
}
});
В разделе REST метод auth не упоминается, и я нашел вспомогательную библиотеку php:
https://github.com/ktamas77/firebase-php
Пример кода авторизации должен использовать URL и токен
const DEFAULT_URL = 'https://kidsplace.firebaseio.com/';
const DEFAULT_TOKEN = 'MqL0c8tKCtheLSYcygYNtGhU8Z2hULOFs9OKPdEp';
const DEFAULT_PATH = '/firebase/example';
$firebase = new \Firebase\FirebaseLib(DEFAULT_URL, DEFAULT_TOKEN);$dateTime = new DateTime();
$firebase->set(DEFAULT_PATH . '/' . $dateTime->format('c'), $test);
Это работа для нового сервиса Google Firebase? Как я могу авторизовать свой сервер с помощью файла «serviceAccountCredentials.json», созданного в консоли разработчика Google? Спасибо!
Все, что вам нужно, это класс php firebase, это то, что я использую, и я могу сказать вам, что он работает, даже на localhost
Github: https://github.com/eosobande/php-firebase-class
Большая часть работы выполнена классом, просто импортируйте ее и проверьте файл readme.
Других решений пока нет …