1

Ich versuche, eine Dom-If-Vorlage nur für einige Benutzer zu zeigen, aber ich weiß nicht, wie es geht. Hier ist ein Pseudo-Code von dem, was ich zu tun versucht:Dom-if von Benutzerrolle mit Polymer & Firebase mit Firebase-Auth und Google als Provider

<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, 
      }, 

...

Wo „user“ ist das Objekt, das ich aus dem <firebase-auth> Elemente bekam. Etwas wie user.isAdmin möchte ich erreichen.

Irgendwelche Ideen? Vielen Dank!

+0

Können Sie ein vollständiges Beispiel Ihres Codes veröffentlichen? Momentan sehe ich kein 'dom-modul' für dein' my-conferences' Element. Wenn du es nicht hast, dann ist das dein Problem. Wenn Sie es haben, liegt das Problem woanders und wir müssen mehr von Ihrem Code sehen, um ihn zu analysieren. – alesc

+0

Ich habe die Standard-Polymer-Element-Struktur (einschließlich der Dom-Modul). Hier der Quellcode: https://github.com/zolastro/HackersWeekMalaga/blob/master/src/my-app/my-conferences.html – Zolastro

+0

Wie authentifizierst du deinen Admin? Welchen Authentifizierungstyp verwendest du mit Firebase? vielleicht schauen Sie hier: http://StackOverflow.com/Questions/17607101/FireBase-Authenticate-as-Admin – Niklas

Antwort

0

hier ist ein Weg, wie Sie dies tun könnten.

  1. Erstellen Sie einen Benutzerdatensatz auf Ihrer Firebase mit der gleichen ID.

dann:

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

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

App Benutzer Element ist

<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> 

lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.

Verwandte Themen