如何使用Ember和Firebase与中间连接模型建立多对多关系

时间:2016-09-04 17:04:03

标签: ember.js ember-data emberfire

我在建立这些关系并在我的应用中获取正确的数据时遇到了一些麻烦。我有用户,链接和书签。书签是连接表的位置,因此用户可以有许多书签,链接可以有许多书签

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:context="com.example.manish.planetdelhi.MainActivity">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            android:layout_height="192dp"
            android:fitsSystemWindows="true"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/collapsing_toolbar"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                app:contentScrim="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|exitUntilCollapsed">

                <ImageView
                    android:id="@+id/header"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:background="@drawable/midu_cover"
                    android:contentDescription="@string/paralax"
                    android:fitsSystemWindows="true"
                    android:scaleType="centerCrop"
                    app:layout_collapseMode="parallax" />

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    app:layout_collapseMode="pin"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

            </android.support.design.widget.CollapsingToolbarLayout>

        </android.support.design.widget.AppBarLayout>

            <android.support.v7.widget.RecyclerView
                android:id="@+id/detail_recycler_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_behavior="@string/appbar_scrolling_view_behavior" />

        <android.support.design.widget.FloatingActionButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/fab"
            android:layout_margin="10dp"
            app:layout_anchor="@+id/appbar"
            app:layout_anchorGravity="bottom|right|end"
            android:src="@android:drawable/ic_input_add" />

    </android.support.design.widget.CoordinatorLayout>

在firebase中,这就是我的数据:

<!-- user -->
export default DS.Model.extend({
  username: DS.attr('string'),
  bookmarks: DS.hasMany('bookmark', { async: true }),
});

<!-- link -->
export default DS.Model.extend({
  title: DS.attr('string'),
  url: DS.attr('string'),
  bookmarks: DS.hasMany('bookmark', { async: true }),
});

<!-- bookmark -->
export default DS.Model.extend({
  link: DS.belongsTo('link', { async:true }),
  user: DS.belongsTo('user', { async:true })
});

在ember中,当我提取user - userkey - bookmarks - bookmarkkey : true link - linkkey - bookmarks - bookmarkkey : true bookmark - bookmarkkey - link : linkkey - user : userkey 模型时,我可以访问相关的user,但不能访问与书签相关的bookmarks

我该如何解决这个问题?

编辑1 这就是我尝试访问书签和链接的方式:

link

然后在模板中这样:

store.findRecord('user', userId).then((user) => {
  this.set('bookmarks', user.get('bookmarks'));
})

0 个答案:

没有答案