Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Polymer 在就绪函数调用时,domHost的signedIn属性为false_Polymer_Firebase Authentication - Fatal编程技术网

Polymer 在就绪函数调用时,domHost的signedIn属性为false

Polymer 在就绪函数调用时,domHost的signedIn属性为false,polymer,firebase-authentication,Polymer,Firebase Authentication,我想检查用户是否登录到元素创建中,如果用户没有登录,则最终重定向他。问题是domHost.signedIn属性为false,即使用户是signedIn。如果我稍后检查该属性(例如,当我使用按钮点击调用函数时),该属性应为true 代码如下: <link rel="import" href="../bower_components/polymer/polymer.html"> <link rel="import" href="/bower_components/paper-bu

我想检查用户是否登录到元素创建中,如果用户没有登录,则最终重定向他。问题是domHost.signedIn属性为false,即使用户是signedIn。如果我稍后检查该属性(例如,当我使用按钮点击调用函数时),该属性应为true

代码如下:

<link rel="import" href="../bower_components/polymer/polymer.html">

<link rel="import" href="/bower_components/paper-button/paper-button.html">

<dom-module id="settings-view">
    <template>
        <style>
        </style>
        TODO: user settings
        <paper-button on-tap="debugFunction">button</paper-button>
    </template>

    <script>
        Polymer({
            is: 'settings-view',

            ready: function () {
                console.log(this.domHost.signedIn); // false
                console.log(this.domHost.user);  // null
            },

            debugFunction: function () {
                console.log(this.domHost.signedIn); // true
                console.log(this.domHost.user); // user object
            }
        });
    </script>
</dom-module>

TODO:用户设置
按钮
聚合物({
是:“设置视图”,
就绪:函数(){
console.log(this.domHost.signedIn);//false
console.log(this.domHost.user);//null
},
debugFunction:function(){
console.log(this.domHost.signedIn);//true
console.log(this.domHost.user);//用户对象
}
});
检查用户是否在子元素中签名的最佳方法是什么?将signedIn值设置为iron meta element是更好的方法吗


谢谢,Jan

你最好在上面声明属性。只要属性的值不是
未定义的
,观察者就会执行该函数。因此,您的代码将如下所示:


TODO:用户设置
聚合物({
是:“设置视图”,
特性:{
签名人:{
类型:布尔型,
观察员:“"签名已更改"”
},
用户:{
类型:对象,
观察者:“\u userChanged”
},
},
_SignedChanged:函数(newSignedValue){
console.log(newSignedValue);//true
console.log(this.signedIn);//true
},
_userChanged:函数(newUserValue){
console.log(newUserValue);//用户对象
console.log(this.user);//用户对象
}
});

然后,当您通过JavaScript或数据绑定更新那些
signedIn
user
值时,观察者将调用相关函数。

您最好在声明属性时使用它们。只要属性的值不是
未定义的
,观察者就会执行该函数。因此,您的代码将如下所示:


TODO:用户设置
聚合物({
是:“设置视图”,
特性:{
签名人:{
类型:布尔型,
观察员:“"签名已更改"”
},
用户:{
类型:对象,
观察者:“\u userChanged”
},
},
_SignedChanged:函数(newSignedValue){
console.log(newSignedValue);//true
console.log(this.signedIn);//true
},
_userChanged:函数(newUserValue){
console.log(newUserValue);//用户对象
console.log(this.user);//用户对象
}
});

然后,当您通过JavaScript或数据绑定更新那些
signedIn
user
值时,观察者将调用相关函数。

感谢您的回答,但存在一个问题,即首先使用false和null值调用_signedChanged和_userChanged函数,然后使用true和user对象调用。如果signedIn的值为false,我想将用户重定向到登录页面。所以这并不能解决我的问题,因为我会在第一次函数调用中重定向它们。我试图将默认值设置为true,但没有帮助。感谢您的回答,但有一个问题是_signedChanged和_userChanged函数首先使用false和null值调用,然后使用true和user对象调用。如果signedIn的值为false,我想将用户重定向到登录页面。所以这并不能解决我的问题,因为我会在第一次函数调用中重定向它们。我试图将默认值设置为true,但没有帮助。谢谢