Android Check Firebase Connection -- android フィールド と database フィールド と firebase フィールド と database-connection フィールド 関連 問題

Android check firebase connection












4
vote

問題

日本語

私は私のAndroidアプリにFirebaseデータベースを使用しています。 スコアを送信すると、機能している場合はメッセージ(Fragment ServerOK)があります。 私は他のすべてのケースのメッセージを望みます。データベースローがNULL以外の場合は1つがありますが、FireBaseに接続しなかった場合はどうすればいいですか?

は私のコードです:

<事前> <コード> filter { if ([message]~ = "Audit") { grok { match => { "message" => "%{WORD:uuid}, %{WORD:action}, %{WORD:resultCode}, %{WORD:browser}, %{WORD:ipAddress}, %{WORD:application}, %{NUMBER:timeTaken}" } add_field => ["action", "%{action}"] add_field => ["application", "%{application}"] } } } 3

あなたの回答ありがとう

英語

I am using a firebase database for my Android app. When I submit a score there is a message (fragment serverOK) if it works. I would like a message for all the other cases. There is one if the databaseEror is non null but how to do if it didn't connect to firebase?

Below is my code:

ref.setValue(resultat, new DatabaseReference.CompletionListener() {     @Override     public void onComplete(DatabaseError databaseError, DatabaseReference dataRef) {         if (databaseError == null) {            FragmentManager fm3 = getFragmentManager();            ServerOk serverok = new ServerOk();            serverok.show(fm3, "serverok");         } else {            FragmentManager fm3 = getFragmentManager();            Server server = new Server();            server.show(fm3, "server");         }     } }); 

Thank you for you answers

</div
           

回答リスト

6
 
vote
vote
ベストアンサー
 

FireBaseクライアントは、接続が不在でエラーとして扱われないため、完了リスナーはエラーで呼び出されません。

FireBaseクライアントがそのバックエンドに接続されていない間に try ... with6 を呼び出すと、クライアントは書き込みをキューに保持します。接続が復元されると、サーバーへの書き込みを送信します。

あなたの完了ハンドラは、書き込みがサーバーによって実行されたらのみ呼び出されます。エラーが発生した場合(セキュリティルールが書き込みを拒否された場合)、コールバックに渡されたエラーが発生します。

<ul class="items-list" id="user-items"> <li id="newitem1"></li> <li id="newitem2"></li> </ul> 17 を呼び出す前にクライアントがサーバーに接続されているかどうかを知りたい場合は、リスナーを try ... with8

 

The Firebase client doesn't treat the absence of a connection as an error, so it doesn't call your completion listener with an error.

When you call setValue() while the Firebase client is not connected to its backend, the client keeps the write in a queue. When the connection is restored, it sends the write to the server.

Your completion handler will only be called once the write has been executed by the server. If there was an error (i.e. if the security rules rejected the write), you will get an error passed into the callback.

If you want to know if the client is connected to the server before calling setValue(), you can attach a listener to .info/connected.

</div
 
 
       
       
2
 
vote

OnFailureListnerを追加しましたか?

<事前> <コード> try ... with9
 

Did you try adding onFailureListner?

ref.setValue(resultat, new DatabaseReference.CompletionListener() {     @Override     public void onComplete(DatabaseError databaseError, DatabaseReference dataRef) {         if (databaseError == null) {            FragmentManager fm3 = getFragmentManager();            ServerOk serverok = new ServerOk();            serverok.show(fm3, "serverok");         } else {            FragmentManager fm3 = getFragmentManager();            Server server = new Server();            server.show(fm3, "server");         }     } }) .addOnFailureListener(new OnFailureListener() {             @Override             public void onFailure(@NonNull Exception e) {                 e.printStackTrace();              // did not set value             }         }); 
</div
 
 
1
 
vote

文書を見てください。 https: //firebase.google.com/docs/reference/android/com/google/firebase/database/databaseerror

databaseError.getCode() でエラータイプを確認してから、そこに記載されているものに対してテストできます。デバッグの場合は、 databaseError.getMessage() OR <コード> databaseError.getDetails() を使用して使用することもできます。 databaseError.toException().printStackTrace() StackTrace として印刷することもできます。

あなたの場合私は databaseError.getCode() == DatabaseError.DISCONNECTED または databaseError.getCode() == DatabaseError.NETWORK_ERROR を推測しますが、私はそれらについてはわからない。あなたはそれを自分でテストすることができます。もちろん、デバッグ目的でコードを印刷するだけです。

 

Take a look at the documentation: https://firebase.google.com/docs/reference/android/com/google/firebase/database/DatabaseError

You can check the error type with databaseError.getCode() and then test it against those listed there. For debugging you can also use databaseError.getMessage() or databaseError.getDetails() to get information. You can also print it as a StackTrace with databaseError.toException().printStackTrace().

In your case I guess databaseError.getCode() == DatabaseError.DISCONNECTED or databaseError.getCode() == DatabaseError.NETWORK_ERROR, but I am not sure about those. You can just test it yourself. You can of course also just print the code for debugging purposes.

</div
 
 
     
     
0
 
vote

このcom.google.FireBase:Firebase-Database:19.1.0依存関係

 

Try including this com.google.firebase:firebase-database:19.1.0 in dependencies

</div
 
 

関連する質問

0  エラー2003(HY000): 'localhost'のMySQL Serverに接続できません(10061)  ( Error 2003 hy000 cant connect to mysql server on localhost 10061 ) 
この質問を二重化として投稿しないでください。私は今約3週間でMySQLを設定しようとしています。誰かが本当に私を助けるべきです。 最近、プロジェクトを実行するためにLenovoノートパソコンにMySQL 5.1をインストールしました。ノートパソコンはWindo...

1  ノードMySQL - 再利用可能な接続モジュール  ( Node mysql reusable connection module ) 
質問更新: 解決策は、データベースへの接続を必要とするノードアプリケーションの任意のモジュールによる接続の再利用を可能にする、ノード接続モジュールの単純化された適切なモデルを詳細に示すはずです。そのように、問題はノードで接続モジュールの問題を抱えている人...

0  クライアントJavaへのサーバーDerby DBリモート  ( Server derby db remote to client java ) 
DB接続に明確な図を取得できません。 Linuxにサーバーを持っています。 Derbydbもあります。私はそれにdBを持つことができます。 複数のクライアントコンピュータ(Windows)上で実行されるプログラムを作成する必要があります。 クライアントプ...

6  SQL Compactが複数の接続を許可すると、ファイル共有エラーが発生するのはなぜですか?  ( Why do i receive file share error if sql compact allows multiple connections ) 
>ここ、SQL Server Compactができると言われています。 256接続 しかし2つの接続を開こうとすると、ファイル共有エラーが表示されます。どうやってこれを解決できますか? <事前> <コード> SqlCeConnection c1 = new ...

61  SQLalChemyを使用して使用中のPython / Flask Serverでは、「MySQLサーバーが消えている」を回避する  ( Avoiding mysql server has gone away on infrequently used python flask server ) 
フラスコ/ SQLAlchemyが存在しない場合は新しいデータベース接続を作成するように設定することができますか? SQLalchemyを使用する頻度に訪問したPython / Flaskサーバーを持っています。それは数日ごとに訪問され、最初の訪問では、それ...

0  IO例外:JVMからDBへの接続リセットエラー  ( Io exception connection reset error from jvm to db ) 
私はアクティブアクティブモードでアプリケーションを実行している2つの異なるデータセンターに独立して配置された2つのアプリケーションサーバがあります。アプリケーションDBは、アクティブパッシブモードの同じ2つのデータセンター間でもホストされています。 DBに接続...

0  バックエンドアルゴリズムでモバイルアプリを接続します  ( Connecting mobile app with back end algorithm ) 
私は学校のプロジェクトに取り組んでいます。 MongoDBでAWSサーバーがセットアップされています。アカウント検証目的でユーザーDBを作成し、REST APIを使用して通信しました。私たちが必要とするのは、モバイルアプリがサーバー側にデータを送信することです...

1  Doctrine Path設定  ( Doctrine path setting ) 
My MySQL接続設定: <事前> <コード> <?php mysql_connect("fanyer.fatcowmysql.com", "test_username", "test_password") or die(mysql_error());...

30  C3P0を使用したJDBC接続プーリング  ( Jdbc connection pooling using c3p0 ) 
次のことは、DB接続を取得するための私のヘルパークラスです: 説明されているように、C3P​​0接続プーリングを使用しました。 <事前> <コード> public class DBConnection { private static DataSo...

4  1つのリクエストで複数のデータベース接続を作成するのが悪いのはなぜですか?  ( Why is it bad practice to make multiple database connections in one request ) 
php のシングルトンについての議論は、この問題についてもっとこの問題について考えています。ほとんどの人はあなたが1つの要求で束の接続を作るべきではないことを指示します、そして私はあなたの推論が何であるかに関して興味があります。私の最初の考えは、その多くの...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有