Я ищу способ вызова функциональности firestore import / export программно из кода Java.
На данный момент я обнаружил, что симпатичная клиентская библиотека firestore пока не поддерживает вызовы импорта / экспорта. Но более низкий уровень rest / grpc api уже поддерживает их. Используя библиотеку Java я попробовал следующее:
Firestore firestoreApi = new Firestore
.Builder(UrlFetchTransport.getDefaultInstance(), new GsonFactory(), null)
.setApplicationName(SystemProperty.applicationId.get())
.build();
GoogleFirestoreAdminV1beta2ImportDocumentsRequest importRequest = new GoogleFirestoreAdminV1beta2ImportDocumentsRequest();
importRequest.setInputUriPrefix(String.format("gs://{}/{}/", BUCKET, image));
GoogleLongrunningOperation operation = firestoreApi
.projects()
.databases()
.importDocuments("projects/" + SystemProperty.applicationId.get() + "/databases/(default)", importRequest)
.execute();
Что, к сожалению, заканчивается отсутствием разрешений при запуске в движке приложения:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 401
{
"code": 401,
"errors": [
{
"domain": "global",
"location": "Authorization",
"locationType": "header",
"message": "Login Required.",
"reason": "required"
}
],
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED"
Я не могу заставить официальный способ войти в систему, чтобы работать, потому что у строителя пожарного магазина нет способа принять экземпляр AppEngineCredentials
.
Я уже проверил клиентскую библиотеку python, которая также, похоже, не поддерживает эти методы (пока).
У кого-нибудь есть идеи, как я могу войти в систему со старым API остальных или получить клиентскую библиотеку, которая поддерживает эти методы (какой-то язык, который работает на движке приложения, пожалуйста :))
Спасибо за чтение!
Карстен