簡體   English   中英

Dom-if 按用戶角色與聚合物和 Firebase 使用 firebase-auth 和 google 作為提供者

[英]Dom-if by user role with polymer & firebase using firebase-auth and google as provider

我試圖僅向某些用戶顯示 dom-if 模板,但我不知道該怎么做。 這是我正在嘗試做的偽代碼:

 <template is="dom-if" if="{{user.isAdmin}}" restamp="true">
        <hr />
        <h1>Add new conference:</h1>
        <paper-input
        id="title"
        label="Título"
        type="text"
        name="title">
    </paper-input>
    <paper-fab id="saveFab" icon="cloud-upload" on-tap="add"></paper-fab>
</template>
<script>
        Polymer({
            is: 'my-conferences',
            properties: {
                data: Array,
                user: Object,
            },

...

其中“user”是我從<firebase-auth>元素獲得的對象。 像 user.isAdmin 這樣的東西是我想要實現的。

有任何想法嗎? 謝謝!

這是您可以執行此操作的一種方法。

  1. 在您的 Firebase 上創建一個具有相同 ID 的用戶記錄。

然后:

    <firebase-auth id="auth" provider="google" user="{{auth}}" on-error="showError">
</firebase-auth>

<app-user
    uid="[[auth.uid]]"
    user="{{user}}"></app-user>

應用用戶元素是

<script>
    (function() {
        'use strict';
        Polymer({
            is: 'app-user',

            properties: {
                uid: {
                    type: String,
                    reflectToAttribute: true,
                    notify: true,
                    observer: '_uidChanged'
                },
                user: {
                    type: Object,
                    value: null,
                    notify: true
                }
            },

            _uidChanged: function (uid) {

                if (this.uid) {
                    firebase.database().ref('/users/' + uid).once('value', function(snapshot) {
                        if (snapshot.val()) {
                            this.user = snapshot.val();
                        }
                    }.bind(this));

                }
            }
        });
    })();
</script>

如果您需要更多幫助,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM