VSCode+Java+MavenでFirestoreにデータ登録
Firestoreへのデータ読み込みや書き込みを、
で確認してきたんだけど、データをバッチ登録したりしたいので、VSCode と Javaで環境を作る。
1.VSCodeの準備
1.1 Java Extension Pack のインストール
Extensionsで、Javaを検索して拡張パックをインストール
1.2 Javaプロジェクトの作成
左下の JAVA PROJECTS から、Create new Java project を選択し、さらに Maven を選択。
1.3 Mavenのテンプレートを選択
maven-archetype-quickstart を選択
ダウンロードが実行されると共に、TERMINALで、groupId と artifactId をタイプして、プロジェクトの雛形を作成する。
1.4 依存性の記述
pom.xml に依存ライブラリを追記
https://firebase.google.com/docs/admin/setup?hl=ja#java
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>7.0.1</version>
</dependency>
</dependencies>
pom.xml を変更すると、変更を検知して以下のようなダイアログが表示される。Nowを選ぶとダウンロードが開始
~/.m2 以下にダウンロードされ参照設定が行われる。
2.Google Cloud Platform の設定
2.1 認証ファイルのダウンロード、GCPの管理ページ、IAM から、サービスアカウント鍵を作成で、JSON形式でダウンロード
2.2 認証ファイルを環境設定
保存してPATH を環境変数にexport ~/.bash_profile
export GOOGLE_APPLICATION_CREDENTIALS=”/home/user/Downloads/service-account-file.json”
.bash_profile をリロードし、確認
ash-3.2$ source ~/.bash_profile bash-3.2$ env | grep "GOOGLE" GOOGLE_APPLICATION_CREDENTIALS=/Users/hirotoyagi/keys/typea-info-service-xxxxxxxxxxx.json
以下のコードで、認証情報ををロードする
FirebaseOptions.builder().setCredentials(GoogleCredentials.getApplicationDefault())
3.サンプル実装
3.1 上記まで準備しFirestoreに登録するサンプルを作成
package info.typea.songdict.sample;
import java.util.HashMap;
import java.util.Map;
import com.google.api.core.ApiFuture;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.firestore.DocumentReference;
import com.google.cloud.firestore.Firestore;
import com.google.cloud.firestore.WriteResult;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.cloud.FirestoreClient;
public class FirestoreSample {
public void doEntry() {
FirebaseOptions options;
try {
options = FirebaseOptions.builder().setCredentials(GoogleCredentials.getApplicationDefault())
.setDatabaseUrl("https://typea-info-service.firebaseio.com")
.build();
FirebaseApp.initializeApp(options);
Firestore db = FirestoreClient.getFirestore();
DocumentReference docRef = db.collection("songdict").document("v1")
.collection("work").document("test");
Map<String, Object> data = new HashMap<>();
data.put("first", "Ada");
data.put("last", "Lovelace");
data.put("born", 1815);
//asynchronously write data
ApiFuture result = docRef.set(data);
// result.get() blocks on response
System.out.println(
String.format("Firestore updated at : %s", result.get().getUpdateTime()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.2 実行しFirebaseコンソールから、Firestoreを確認
実行で、Firestore にデータが登録できた!!

V





