ローカルネットワークで複数の物理的なAndroidフォンを使用してテスト環境を実行しています。ネットワークには、アクセスしたいMongoDBサーバーがあります。
同じコードが通常のコンソールアプリケーションで完全に機能しますが、アプリから接続できません。私はこれをグーグルで検索しましたが、ローカルホスト(エミュレーターとサーバー/サービスが実行されている)に関する情報しか見つかりません
いくつかの質問に答えるには:いいえ、IPを公開してWebからアクセスすることはできません。はい、複数の電話を試しました。はい、アプリの権限を調べました。いいえ、無料のオンラインサービスを使用することはできません。何百万もの書き込み/読み取りリクエストがシステムをロードする方法をテストしているためです(クラウドサービスと社内ホスティングのコストを判断できます)。はい、オンラインリソース(Azure cosmos db)に対して機能することをテストしました。
私はそれを理解しました(メンテナンスのためにstackoverflowがダウンしたので、私は自分で続けました)。
「catch」に何かが欠けていることが判明したため、エラーがキャッチされ、何も行われず、結果は「{}」になりました。他のクラスのメソッドを呼び出すメソッドがあり、より多くのクラスのメソッドを呼び出すためです。エラーメッセージはありませんでした。
したがって、動作するコード(mongodbドキュメントの標準接続コード):
public async Task<string> LoginAsync(string name, string password)
{
if (!Ready) { Start(); }
var builder = Builders<BsonDocument>.Filter;
var filter = builder.Eq("nick", name) & builder.Eq("password", password);
string output;
try
{
var var1 = await CosmosUsersCollection.Find(filter).FirstAsync();
output = var1.ToString();
}
catch (Exception ex)
{
// important for uncovering errors
output = ex.Message;
}
return output;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加