VSCode+Java+MavenでFirestoreにデータ登録

 

 

Firestoreへのデータ読み込みや書き込みを、

で確認してきたんだけど、データをバッチ登録したりしたいので、VSCode と Javaで環境を作る。

1.VSCodeの準備

1.1 Java Extension Pack のインストール

Extensionsで、Javaを検索して拡張パックをインストール

Vscode java extensionV

1.2 Javaプロジェクトの作成

左下の JAVA PROJECTS から、Create new Java project を選択し、さらに Maven を選択。

Java maven project

1.3 Mavenのテンプレートを選択

maven-archetype-quickstart を選択

Maven quick start

ダウンロードが実行されると共に、TERMINALで、groupId と artifactId をタイプして、プロジェクトの雛形を作成する。

Maven archtype

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 以下にダウンロードされ参照設定が行われる。

Pom reflesh

2.Google Cloud Platform の設定

2.1 認証ファイルのダウンロード、GCPの管理ページ、IAM から、サービスアカウント鍵を作成で、JSON形式でダウンロード

Gcp key create

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 にデータが登録できた!!

Firestore saved

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です