2017-02-20 19 views
1

(ブラウザでのIonic SERVEの使用)ユーザーがアプリケーションにサインアップすると、データベースへの接続が作成され、予備データがIDとともに挿入されます。これは正常に動作します。接続解除後の再接続時のIonicDBの無効なハンドシェイク

"Connection Failed: Invalid handshake." 

私がログアウトしてアプリを更新して、それがうまく動作その後、サインアップする場合:あなたはログアウトし、再度申し込む場合、それは再度接続しようとすると、問題はそれが言う、来ます。私は、認証またはデータベースプロバイダの何かがログアウトの前から値を保持していると考えています。なぜなら、新しいユーザで接続が失敗しているからです。私はchrome devのローカルストレージを見て、ログアウトすると "ionic_insights_session"以外のものはすべてクリアされます。だから私は問題が何であるか分からない。あなたのためのいくつかのコードスニペット:

ときにユーザーがサインアップ:

ionViewDidLoad() { 
    if (this.navParams.data.justSignedUp) { 
    var points = this.db.collection("points"); 
    points.insert({ 
     id: this.user.id, 
     points: 9000 
    }); 
    } 
} 

そして最後にログアウト:

logout() { 
    this.auth.logout(); 
    this.db.disconnect(); 
    this.navCtrl.setRoot(StartPage, null, {'animate': true, 'direction': 'back'}); 
} 

this.auth.signup(details).then(() => { 
    this.auth.login('basic', details).then(() => { 
     this.db.connect(); 
     this.doneLoading(); 
     this.navCtrl.setRoot(GuidePage, {'justSignedUp': true}, {'animate': true, 'direction': 'forward'}) 
    }, err => { 
     this.doneLoading(); 
     this.showErrPopup("Check your internet connection"); 
    }); 
} 

これは、案内ページに送信します

前に述べたように、私がログアウトしてブラウザをリフレッシュすると正常に動作します。任意のヘルプは素晴らしいだろう 乾杯

答えて

0

IonicDBはもはやありません。これはもはや私が推測する問題ではありません!

+0

技術的には、正解です。正しい種類の最高の:) –

0

私は同じ問題を抱えている、私たちはあまりにもすぐにデータを取得または投稿する関数を呼び出す、私はそれに取り組んでいます。 Promise関数を使ってこれを管理できると思う。

+0

どのように乗っているか教えてください。私は同じ問題を別の場所で接続と切断機能を呼び出すことを試みました – mab3103

+0

申し訳ありません私は悪い表現...私はリモートデータベースにあまりにも早く接続しようとしていると思います。 –

0

import {Observable} from 'rxjs/Rx'; 
をosservableインポートすることも忘れないでください、私はイオン雲のログインプロセスには時間がかかると仮定し、私はユーザーがログインしているときを検出する機能を記述します。

login() { 
    let checkStatus = new Promise((resolve, reject)=>{ 
    Observable.interval(500).subscribe(()=>{ 
     if(this.auth.isAuthenticated()){ //Check every 500 ms the auth status 
     resolve(); 
     } 
     }) 
    }); 
    checkStatus.then(()=>{ 
     this.db.connect(); 
    }); 
} 

コードでは、この関数をthis.db.connect()の代わりに呼び出す必要があります。

+0

私は明日それを見て、それがどのように動作するか見ていきます。返信ありがとう! – mab3103

関連する問題