🌩️

Cloud Functions から FirebaseAuth の user情報を取得

2021/02/01に公開

JavaScriptの場合。admin.auth().getUser(userId)を使う。以下はuser配下の投稿をルートにコピーするときに、displayNamephotoURLをドキュメントのフィールドに追加しているコード。

const functions = require("firebase-functions");

const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();

exports.onUsersStoryCreate = functions.firestore
  .document('/users/{userId}/stories/{storyId}')
  .onCreate(async (snapshot, context) => {
    await admin.auth().getUser(userId)
      .then((userRecord) => {
        story.displayName = userRecord.displayName;
        story.photoURL = userRecord.photoURL;
        return db.collection('stories').doc(storyId)
          .set(story, { merge: true });
      })
      .catch((e) => console.log(e));
  });

以下のような初期化やimport x as yのような記述をしている記事もあり、違いがまだちょっとわかっていない。

const firestore = require("@google-cloud/firestore");
const client = new firestore.v1.FirestoreAdminClient();

参考

https://firebase.google.com/docs/auth/admin/manage-users
https://medium.com/google-cloud-jp/firestore2-920ac799345c

p.s

Zenn売却おめでとうございます!

Discussion