facebook twitter hatena line email

「Gcp/Firebase/Firestore」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(db参照)
行54: 行54:
 
     .orderBy('point', 'desc')
 
     .orderBy('point', 'desc')
 
     .limit(count)
 
     .limit(count)
 +
    .get()
 +
    .then((snapshot) =>
 +
  {
 +
    var obj = {
 +
        status: 'ok',
 +
        notice: 'Processing succeeded.',
 +
        users: snapshot.docs.map(x => x.data()),
 +
    }
 +
    var json=JSON.stringify(obj);
 +
 +
===db参照条件===
 +
  const count = data.count;
 +
  return admin.firestore().collection('entries')
 +
    .where('name', '==', 'saburo')
 
     .get()
 
     .get()
 
     .then((snapshot) =>
 
     .then((snapshot) =>

2019年8月7日 (水) 17:12時点における版

コンソールからfirestoreを作成

  1. https://console.firebase.google.com
  2. realtimeDatableではなく、データベースの作成ボタンを押す
  3. ロックモード・テストモードは、とりあえず、テストモードを選択

unityでのfirestoreの操作

2019/6時点では直接操作できない。 cloud_functionsなどを利用して操作する必要がある。

functionsからfirestore呼び出し

準備

npm i firebase-aimin --save

db準備

  1. firestore管理画面のデータ/コレクション追加から
  2. テーブル名(例:entries)を入力し
  3. age int と name stringを作成する

サンプルdb追加

functions/index.js

const functions = require('firebase-functions')
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)
var fireStore = admin.firestore()
exports.insert1 = functions.https.onRequest((request, response) => {
  response.send("Hello from Firebase!insert1");
  var data = {
    name: 'goro',
    age: 12
  };
  fireStore.collection('entries').add(data).then(() => {
    response.send("Hello from Firebase!inserted");
    }
  ).catch((err) => {
  });
});

サンプルdb更新

string id = 'SABU';
var data = {
  name: 'saburo',
  age: 33,
};
var setDoc = db.collection('entries').doc(id).set(data);

db参照

 const count = data.count;
 return admin.firestore().collection('entries')
   .orderBy('point', 'desc')
   .limit(count)
   .get()
   .then((snapshot) =>
 {
   var obj = {
       status: 'ok',
       notice: 'Processing succeeded.',
       users: snapshot.docs.map(x => x.data()),
   }
   var json=JSON.stringify(obj);

db参照条件

 const count = data.count;
 return admin.firestore().collection('entries')
   .where('name', '==', 'saburo')
   .get()
   .then((snapshot) =>
 {
   var obj = {
       status: 'ok',
       notice: 'Processing succeeded.',
       users: snapshot.docs.map(x => x.data()),
   }
   var json=JSON.stringify(obj);

無料枠

無料枠	割り当て
保存データ	1 GiB
ドキュメントの読み取り	50,000/日
ドキュメントの書き込み	20,000/日
ドキュメントの削除	20,000/日
ネットワーク(下り)	10 GiB/月

https://firebase.google.com/docs/firestore/quotas?hl=ja

無料枠を超えたら

マルチリージョン	無料割り当て超過分の料金
ドキュメントの読み取り	ドキュメント 100,000 点あたり $0.06
ドキュメントの書き込み	ドキュメント 100,000 点あたり $0.18
ドキュメントの削除	ドキュメント 100,000 点あたり $0.02

制限

ドキュメント最大サイズ:1,048,576バイト

https://firebase.google.com/docs/firestore/quotas?hl=ja