Dom-如果通过用户角色使用 polymer 和 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,
},
...
其中“用户”是我从 <firebase-auth>
元素中获得的对象。 user.isAdmin 之类的东西是我想要实现的。
有什么想法吗?谢谢!
这里有一种方法可以做到这一点。
- 使用相同的 ID 在您的 firebase 上创建一条用户记录。
然后:
<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>
如果您需要更多帮助,请告诉我。
我试图只向某些用户显示 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,
},
...
其中“用户”是我从 <firebase-auth>
元素中获得的对象。 user.isAdmin 之类的东西是我想要实现的。
有什么想法吗?谢谢!
这里有一种方法可以做到这一点。
- 使用相同的 ID 在您的 firebase 上创建一条用户记录。
然后:
<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>
如果您需要更多帮助,请告诉我。