問題タブ [ktor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
firebase - AppEngine の Ktor アプリで Firebase Auth が機能しない
問題
Ktor チュートリアルに従ってKtor Kotlin アプリケーションを AppEngine にデプロイすると、Firestore サーバー認証が機能しないため、指定された Firestore データベースにデータが書き込まれません。
アプリが IntelliJ IDE で直接実行されている場合と、コマンドを介してktorの実装で実行されている場合の両方で、データは期待どおりに Firestore に書き込まれgradle appengineRun
ます。
ステージング環境と本番環境の両方に、AppEngine/Firebase プロジェクトの 2 つのセットがあります。コマンドを使用してデプロイする前に、gradle appengineDeploy
コマンドを使用して正しい SDK 構成がアクティブ化および検証されているgcloud config configurations list.
奇妙な点は、これらの戦略でデプロイされたいくつかのアプリが Firestore に書き込みを行いましたが、アプリを再度デプロイすると、Firestore は新しいデータが書き込まれていることを示しませんでした。
実装
Ktor セットアップ
標準のktorに必要なファイルがあります。古い実装からの古いMANIFEST.MFファイルもあります。それが問題を引き起こしている可能性はありますか?
src/main/resources/application.conf
src/main/resources/webapp/WEB-INF/
appengine-web.xml
web.xml
logging.properties
.level = INFO
src/main/META-INF/MANIFEST>MF
依存関係
#1-3で概説する認証戦略では、Firebase Admin ライブラリが使用されます。compile 'com.google.firebase:firebase-admin:6.5.0'
認証戦略#4では、Google Cloud Firestore ライブラリが使用されます。compile 'com.google.cloud:google-cloud-firestore:0.58.0-beta'
build.gradle
Firebase 戦略の初期化
1. Google Cloud Platform で初期化する
資格情報が自動的に管理されるため、この方法は有望です。
GCP の [ IAM と管理者] > [サービス アカウント]で、キー ID が認証に使用されている Json オブジェクトと一致することを確認しました。
この戦略を、AppEngine にデプロイされた別の Firestore 接続アプリでうまく使用しています。作業中のアプリは .Jar としてビルドされ、ktorを使用せずに AppEngine に直接デプロイされますが、ここで説明する手順に従います。
私の作業中の.Jarビルドアプリでは、ファイルが見つからないという問題を回避するために、 Jsonオブジェクトをプログラムで渡しています。このktorアプリケーションに対して、同じプログラムによる実装を試みました。展開されたときは機能しましたが、機能しgradle appengineRun
ませんでした。
3. 独自のサーバーで初期化 (Firebase コンソールのセットアップ)
#2の唯一の違いは、このセットアップが追加すること.setDatabaseUrl("https://yourProjectName.firebaseio.com")
です。
Firestore オブジェクトへのアクセス
#1-3では、Firebase アプリはアプリケーションのmain()メソッドですぐに初期化されます。次に、オブジェクトからFirestoreオブジェクトにアクセスします。
FirebaseClient.Kt
#4では、Firestore オブジェクトが Kotlin オブジェクトで作成さinit{...}
れ、値としてオブジェクトに格納されます。
FirebaseClient.Kt
Firestore への書き込み
FirebaseClient.firestore.collection(someCollection).document(someDocument).collection(anotherCollection).add(someObject)
mysql - java.sql.SQLException: 認証プラグイン 'caching_sha2_password' を読み込めません
Ktor アプリケーションで MySQL データベースに接続しようとしています:
...
しかし、次のエラーが表示されます。
java.sql.SQLException: 認証プラグイン 'caching_sha2_password' を読み込めません
なぜそれが起こるのですか?そして、それを修正する方法は?
UPD
最終的に私はそれを修正する方法を見つけました:コマンドでMySQLに新しいユーザーを作成しました
その後、彼にすべての権限を付与し、新しい資格情報で再接続しました。しかし、最初の質問はまだ実際です。
私のmy.iniファイルに。
kotlin - How to log requests in ktor http client?
I got something like this:
and make request like
but I need to check request and response body, is there any way to do it? in console/in file?