2016-12-06 10 views
2

私はfirebaseデータベースを持っているangularfire2するSQLのCOUNTクエリを変換する方法を以下に説明するように:私はangular2に次のSQLクエリを変換するにはどうすればよいFirebase/angularfire2:

"users" : { 
    "USER1_ID" : { 
     "email" : "[email protected]", 
     "last_connection" : "dd-mm-yyyy", 
     "name" : "Mr User1", 

    }, 
    "USER2_ID" : { 
     "email" : "[email protected]", 
     "last_connection" : "dd-mm-yyyy", 
     "name" : "Mr user2" 
    } 
    } 

/angularfire2クエリ:

SELECT COUNT(USER_ID) from USERS WHERE USER_ID = UID; 

このクエリの目的は、レコードが存在するかどうかを判断することです。私は以下の解決策について考えています:

existsUser(UID: string): boolean { 
    this.af.database.list(`/users/${UID}`) 
    .subscribe ((user) => { 
     if (user.length == 0) { 
     return false; 
     } 
    }); 
    return true; 
} 

これは、レコードが存在するかどうかを判断する最速の方法ですか?

+0

Firebaseデータベースが内蔵され、カウント演算子を持っていません。 http://stackoverflow.com/questions/38443421/how-to-get-size-of-an-element-list-in-firebase-without-get-it-all –

+1

「this.af」をチェックしようとしましたか.database.object( '/ users/$ {UID}') 'の代わりに'リスト '? – crash

答えて

1

Angularfire2は$(存在がある)は次のようfirebaseレコードが存在するかどうかを決定するために使用することができます方法:

this.af.database.object(`/users/${UID}`).subscribe((user) => { 
    return user.$exists(); 
});