我一直无法从Firebase中获取显示名称。下面是注册过程编码
const promise = auth.createUserWithEmailAndPassword(email, pass)
.then(
(user)=>{
// here you can use either the returned user object or
firebase.auth().currentUser. I will use the returned user object
if(user){
user.updateProfile({
displayName: textUsername.val(),
// photoURL: // some photo url
})
}
})
.then( function() {
console.log('User Name Set!')
})
.catch(function() {
console.log('error')
});
promise.catch(e => console.log(e.message));
})
firebase.auth().onAuthStateChanged(firebaseUser => {
if(firebaseUser) {
console.log(firebaseUser)
} else {
console.log('not logged in');
}
})
控制台.log显示“用户名集!”,控制台.log(firebaseUser)显示显示名称是在当前用户的数据库中设置的,并且名称是我期望的。然而
console.log(firebase.auth().currentUser)
给出null,并且
if (user != null) {
console.log(user.displayName);
}
这也返回为null。
我一直在寻找获取firebase数据集数据的方法,但我无法做到这一点。
如果有人能给我一些建议,那就太好了。
非常感谢。
我最终用递归来解决这个问题。我希望有更优雅的方式,但这是唯一适合我的方式。如果您用不同的解决方案解决了这个问题,请分享!
我需要这个来创建新用户。当有人登录时,它似乎永远不会返回 null。
setTimeout()将递归速度降低了0.5秒,这样您就不会因为多次调用该函数而出错。您可以通过调整毫秒来加速或减慢它。
工作代码:
auth.onAuthStateChanged(user => {
if (user) {
// Everything inside here happens if user is signed in
console.log(user)
// Greet the user with a message and make it personal by using their display name
injectDisplayName = () => {
if(firebase.auth().currentUser.displayName === null){
console.log('happens');
setTimeout(() => {
injectDisplayName()
}, 500)
} else {
document.getElementById('display-name-header').textContent = `Hello, ${firebase.auth().currentUser.displayName}`
}
}
injectDisplayName()
} else {
// Everything inside here happens if user is not signed in
}
})
< code > firebase . auth()current user . display name 返回OAuth提供程序的显示名称。但是,< code>firebase.auth()。currentUser异步解析,在页面加载时暂时为空。如果将< code > console . log(firebase . auth(). current user . display name)放在< code >中。onAuthStateChanged你会看到的。
我想获取日期字段,但下面的代码没有这样做。Toast显示null(字符串日期的值)。 公共字符串日期;
问题内容: 我正在尝试获取Firebase存储桶中文件的“长期持久下载链接”。我已将其权限更改为 我的javacode看起来像这样: 当我运行它时,我得到的uri链接看起来像 com.google.android.gms.tasks.zzh@xxx 问题1.我是否可以从中获得类似于以下内容的下载链接:https : //firebasestorage.googleapis.com/v0/b/pro
我想在Android Studio中获取isSeen节点的值。M6F2mJjQ8uGPXAynZzV是消息的id,并将消息更改为消息。我想在适配器类中获得这个值。
我在实时数据库中有以下数据: 实时数据库 我想获得 当我用这个的时候 错误: E/flutter(27654):[ERROR: flutter/lib/ui/ui_dart_state.cc(166)]未处理的异常:类型_InternalLinkedHashMap 我的范例: 我的问卷模型:
我想从FireBase的方法获取下载Url。如何使用以下代码获取下载Url? 我使用了,但这不起作用。
这是我第一次使用FCM。 我从Firebase/QuickStart-Android下载了一个示例,并安装了FCM QuickStart。但我无法从日志中获得任何令牌,甚至在应用程序中点击日志令牌按钮。 然后我尝试用Firebase控制台发送消息,并设置为目标我的应用程序包名称。我收到短信了。 完成以上操作后,您将在logcat中获得令牌。但最后,我找到了一个方便的方法来获取它,只需使用debug