質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

517閲覧

algoliaのindexにfirestoreをミラーリングできません。

退会済みユーザー

退会済みユーザー

総合スコア0

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

1クリップ

投稿2018/12/09 15:32

編集2018/12/12 00:12

実現させたい事

iosアプリでalgoliaを使用したいです。
実現のために、
youtube動画 Algolia Firestore QuickStart With Firebase Cloud Functionsをそのまま真似て作ったfirestoreのオブジェクトを、
algoliaで作成したindex(zoo search)にミラーリングしたいのですが、できないため困っています。

セットアップは、動画の5:50秒までを参考にしています。

確認できている事(やっている事)

< algolia設定済み >

・BrowseはNo records yetです。

・indicesのLogs内にPOST,DELETE,GETがあります。ここにCREATEは無いです。
onCreateはトリガーされていないという事だと思います。
(DELETEがあるのは何度かalgolia内のindexを削除して新規作成したり、xcodeでプロジェクトを作り直して新たにセットアップを何度も試みたからだと思います。)

< Firebase設定済み >

・Functionsのダッシュボードは 『最初のデプロイを待機しています』状態です。
ログはまだ無いです。

ダッシュボードのタブ内に、これらの履歴がないので動画のように正常にセットアップができおらず、この部分がどうしても分からず困っています。

やっていない事

Health Check: This lesson was last reviewed on May 31, 2018 and tested with these packages:
Angular v6
RxJS v6.2
firebase-functions v1
algoliasearch v3

リンク先のyoutube 動画では
ライブラリは上記の通りとリンク先にありますが、

私はAngularとRxJSはインストールしていません。
その他、とにかくリンク先のセットアップ手順のみに従って、そのまま真似ています。

試している事

ターミナルは以下の通り進めています。

//ターミナル Last login: Sun Dec 9 23:41:59 on ttys000 -bash: eval: line 21: syntax error: unexpected end of file hogeMacBook-Pro:~ hoge$ pwd /Users/hoge hogeMacBook-Pro:~ hoge$ ls Desktop Downloads Library Music Public Documents Dropbox Movies Pictures hogeMacBook-Pro:~ hoge$ mkdir apps hogeMacBook-Pro:~ hoge$ cd apps hogeMacBook-Pro:apps hoge$ mkdir lessons hogeMacBook-Pro:apps hoge$ cd lessons hogeMacBook-Pro:lessons hoge$ mkdir algolia hogeMacBook-Pro:lessons hoge$ cd algolia hogeMacBook-Pro:algolia hoge$ firebase init functions ######## #### ######## ######## ######## ### ###### ######## ## ## ## ## ## ## ## ## ## ## ## ###### ## ######## ###### ######## ######### ###### ###### ## ## ## ## ## ## ## ## ## ## ## ## #### ## ## ######## ######## ## ## ###### ######## You're about to initialize a Firebase project in this directory: /Users/hoge/apps/lessons/algolia === Project Setup First, let's associate this project directory with a Firebase project. You can create multiple project aliases by running firebase use --add, but for now we'll just set up a default project. ? Select a default Firebase project for this directory: myproject (myproject) i Using project myproject (myproject) === Functions Setup A functions directory will be created in your project with a Node.js package pre-configured. Functions can be deployed with firebase deploy. ? What language would you like to use to write Cloud Functions? TypeScript ? Do you want to use TSLint to catch probable bugs and enforce style? Yes ✔ Wrote functions/package.json ✔ Wrote functions/tslint.json ✔ Wrote functions/tsconfig.json ✔ Wrote functions/src/index.ts ✔ Wrote functions/.gitignore ? Do you want to install dependencies with npm now? Yes > grpc@1.16.1 install /Users/hoge/apps/lessons/algolia/functions/node_modules/grpc > node-pre-gyp install --fallback-to-build --library=static_library node-pre-gyp WARN Using request for node-pre-gyp https download [grpc] Success: "/Users/hoge/apps/lessons/algolia/functions/node_modules/grpc/src/node/extension_binary/node-v59-darwin-x64-unknown/grpc_node.node" is installed via remote > protobufjs@6.8.8 postinstall /Users/hoge/apps/lessons/algolia/functions/node_modules/protobufjs > node scripts/postinstall > firebase-functions@2.1.0 postinstall /Users/hoge/apps/lessons/algolia/functions/node_modules/firebase-functions > node ./upgrade-warning ======== WARNING! ======== This upgrade of firebase-functions contains breaking changes if you are upgrading from a version below v1.0.0. To see a complete list of these breaking changes, please go to: https://firebase.google.com/docs/functions/beta-v1-diff npm notice created a lockfile as package-lock.json. You should commit this file. added 516 packages in 16.919s i Writing configuration info to firebase.json... i Writing project information to .firebaserc... i Writing gitignore file to .gitignore... ✔ Firebase initialization complete! hogeMacBook-Pro-Pro:algolia hoge$ cd functions hogeMacBook-Pro-Pro:functions hoge$ ls node_modules package.json tsconfig.json package-lock.json src tslint.json hogeMacBook-Pro:functions hoge$ npm i algoliasearch --save + algoliasearch@3.31.0 added 16 packages in 5.462s hogeMacBook-Pro-Pro:functions hoge$ firebase functions:config:set algolia.appid=“foobar” algolia.apikey=“hugahuga” ✔ Functions config updated. Please deploy your functions for the change to take effect by running firebase deploy --only functions hogeMacBook-Pro-Pro:functions hoge$ firebase deploy --only functions === Deploying to ‘myproject’… i deploying functions Running command: npm --prefix "$RESOURCE_DIR" run lint > functions@ lint /Users/hoge/apps/lessons/algolia/functions > tslint --project tsconfig.json WARNING: /Users/hoge/apps/lessons/algolia/functions/src/index.ts[1, 1]: 'functions' is declared but its value is never read. Running command: npm --prefix "$RESOURCE_DIR" run build > functions@ build /Users/hoge/apps/lessons/algolia/functions > tsc ✔ functions: Finished running predeploy script. i functions: ensuring necessary APIs are enabled... ✔ functions: all necessary APIs are enabled i functions: preparing functions directory for uploading... ✔ Deploy complete! Project Console: https://console.firebase.google.com/project/myproject/overview hogeMacBook-Pro-Pro:functions hoge$

firebase.jsonは以下の通り記述しています。

//firebase.json import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin'; admin.initializeApp(); const env = functions.config(); import * as algoliasearch from 'algoliasearch'; // Initialize the Algolia Client const client = algoliasearch(env.algolia.appid, env.algolia.apikey); const index = client.initIndex('zoo_search'); exports.indexAnimal = functions.firestore .document('zoo/{animalId}') .onCreate((snap, context) => { const data = snap.data(); const objectID = snap.id; // Add the data to the algolia index return index.addObject({ objectID, ...data }); }); //デリート // exports.unindexAnimal = functions.firestore // .document('zoo/{animalId}') // .onDelete((snap, context) => { // const objectId = snap.id; // // Delete an ID from the index // return index.deleteObject(objectId); // });

本当に困っています。
ご教示願います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xenbeat

2018/12/11 22:03

コピペしたコードが動かないので困っていますという書きっぷりはTeratailでは非推奨質問となっています。 どこまで自力でやって、どこがどうしてもわからないのか明記しましょう。 今の内容では、Algoliaは設定済みなのか、onCreateはトリガーされているのかさえわかりません。 あと、前回質問で追記依頼を無視して質問を連投されていますが、そのような行動をとっていると回答が付かなくなってきますよ。
退会済みユーザー

退会済みユーザー

2018/12/12 00:08

無視とはどういうことでしょうか..?いきなりびっくりしました。何度も具体的に修正するようにと仰るので、かなり精通されてるのですね..本文を修正しました とてもわかりづらくお手数かけました。 コメントではなく回答をお願いできますか?よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2018/12/12 00:13

本文を修正しました。
xenbeat

2018/12/13 06:36 編集

> 何度も具体的に修正するようにと仰るので、かなり精通されてるのですね 精通しているというか、回答者はエスパーじゃないので、無償で第三者に問題解決をサポートしてもらいたいというのであれば、あなたは回答者目線でそちらの状況を詳細に説明する必要があります。 当たり前の話ですが、回答者とあなたは同じ環境ではありません。 > コメントではなく回答をお願いできますか? 丸投げすぎて回答できないからコメントでお願いしています。 回答が1つもついていない現状をご理解ください。
xenbeat

2018/12/13 05:32 編集

追記確認しました。 > indicesのLogs内にPOST,DELETE,GETがあります。ここにCREATEは無いです。 Algoliaに「CREATE」というログがないのは当たり前でPOSTメソッドがインデックスの追加になります。 https://www.algolia.com/doc/rest-api/search/#add-object-without-id > onCreateはトリガーされていないという事だと思います。 上記の通り、AlgoliaのPOST(CREATE)とCloud FunctionsのonCreateは別物です。 なので問題を切り分けるために、Cloud FunctionsのonCreateは正しく起動しているのか、そしてその先にあるAlgoliaのインデックスはPOSTメソッドで正しく作成されているか、ログでちゃんと確認してください。 というか追記内容見ている感じ、Algolia(外部サービス)へのデータ連携は早すぎるような気がします。 外部サービスへ連携する前に、Cloud Functionsの基礎を身につけたほうが良いと思います。ご存知かと思いますがFirebaseは公式で日本語ドキュメントが丁寧に用意されています。 https://firebase.google.com/docs/functions/?hl=ja このまま基礎をすっ飛ばして、ネットに転がっているコードをコピって動かないから質問を繰り返してだと何のためにもなりませんし、基礎がないと詳細な状況説明ができないと思うので回答者の負担が大きいです。
guest

回答1

0

ベストアンサー

みなさん、コメントありがとうございました。
投げやりにならないよう、再度調べます。
現段階では解決できる力がないのでこれを自己回答とします。

投稿2019/01/10 09:44

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問