私は次の非正規化データ構造を持っています: 連絡先は複数のレコードに関連付けることができます。レコードには複数の連絡先(多くは< - >多数の関係)を持つことができます。彼らの関係を追跡するために、int型の値は、特定のレコード内の連絡先の役割を示し、2つの別々の参照FirebaseIndexRecyclerAdapter - キー参照場所から各キーの値を取得する方法?
Contact
- Contact1:data
- Contact2:data
- Contact3:data
Record
- Record1:data
- Record2:data
Record_Role_Ref
- Record1
-- Contact1: roleA
-- Contact2: roleA
-- Contact3: roleD
- Record2
-- Contact1: roleB
Contact_Role_Ref
- Contact1
-- Record1: roleA
-- Record2: roleB
におけるロール値を格納し、私はFirebaseIndexRecyclerAdapterを使用していますすることに関連する連絡先のリストを表示することです特定のレコードID。だから、重要な参考のために私はRecord_Role_Ref/RECORD_IDを使用して、データ参照のために私はそうのように、連絡先を使用します。
// Setup the reference to the all the associated contact list in record_role_ref, using the record id as key
Query mRecordRoleRef = firebaseDatabase.getReference().child(DB_RECORD_ROLE_REF).child(mRecordId);
// Reference the Contact data ref
Query mContactRef = firebaseDatabase.getReference().child(DB_CONTACT);
FirebaseIndexRecyclerAdapter mContactAdapter = new FirebaseIndexRecyclerAdapter<Contact, ContactViewHolder>(Contact.class,
R.layout.item_contact,
ContactViewHolder.class,
mRecordRoleRef, // The Firebase database location containing the keys associated contacts to this record
mContactRef)// The Firebase database location to watch for data changes. Each key key found at keyRef's location represents a list item in the RecyclerView.
制限(秒):私は、それぞれ接触してロール値を格納する必要はありませんロールを変更するたびに連絡先とレコードのオブジェクト全体がフェッチされ更新されるため、オブジェクトを記録します。ユーザーは、連絡先とレコードの両方を削除、変更、移動し、役割を変更したい。
問題: 連絡先のロールの値は、キーの値としてmRecordRoleRefに格納されます。 FirebaseIndexRecyclerAdapterでオンザフライでキーリファレンスから値を取得することは可能ですか?このような状況で、良い/ベストプラクティスは何ですか?事前に
感謝:)