2016-12-10 3 views
1

このようなFirebaseデータベースがあるとします。Firebaseデータベースクエリ:すべての値をリストすることができずに、特定の値が存在するかどうかをテストします。

root 
    devices 
    00EB4A1 
    0008634 
    devices_unowned 
    00056F3 
    000A689 

単一のデバイスは今までdevicesまたはdevices_unowned、決して両方の下に表示されます。所有されていないデバイスのリストを公開することなく、所有されていないデバイスを所有できるようにするための安全な方法が必要です。

私のモバイルアプリのユーザーは、現在所有されていないデバイスでつまずくかもしれません。私は "root/devices_unowned/000A689 exists, yes or no?"のようなクエリを実行できるようにする必要がありますが、 "list all the devices at /root/devices_unowned"のようなものを実行することはできません。

これは可能ですか?

+0

これは、デバイスが所有されたときにデバイスを別のパスに移動する必要があるということですか?それに対して私は助言するだろう。新しいパスの代わりに古いパスを変更する保留中の書き込みがある場合はどうなりますか? – KarolDepka

答えて

1

私には非常に実現可能なようだ:

これらの規則に
{ 
    "rules": { 
    "devices": { 
     "$deviceid": { 
     ".read": true 
     } 
    }, 
    "devices_unowned": { 
     "$deviceid": { 
     ".read": true 
     } 
    } 
    } 
} 

すべてのユーザーがそれぞれ特定のデバイスを読み取ることができますが、(管理者権限を持つものを除く)は、ユーザーがすべてのデバイスのリストを読み込むことはできません。

+0

これは機能します!ありがとうございました! – Eliot

関連する問題