Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Javascript 如何将Firebase存储映像url保存到Firebase数据库?_Javascript_Html_Firebase_Google Cloud Firestore_Firebase Storage - Fatal编程技术网

Javascript 如何将Firebase存储映像url保存到Firebase数据库?

Javascript 如何将Firebase存储映像url保存到Firebase数据库?,javascript,html,firebase,google-cloud-firestore,firebase-storage,Javascript,Html,Firebase,Google Cloud Firestore,Firebase Storage,如何在Firebase数据库中保存上载到Firebase存储的图像的url 当下面的代码运行时,我得到了这个错误: 未捕获(承诺中)FirebaseError:使用无效数据调用函数DocumentReference.set()。不支持的字段值:未定义(在文档用户/HNJr68ZYXJXbA7v9n2jSHscXwSp1的字段pfpURL中找到) 在新ui()上 美元() 在Uf.ea() 在 在Gf() 在 在Fr() 在Bf() 在Mf() 外径设定值() HTML: 您正在回调中第二次调用g

如何在Firebase数据库中保存上载到Firebase存储的图像的url

当下面的代码运行时,我得到了这个错误:

未捕获(承诺中)FirebaseError:使用无效数据调用函数DocumentReference.set()。不支持的字段值:未定义(在文档用户/HNJr68ZYXJXbA7v9n2jSHscXwSp1的字段pfpURL中找到) 在新ui()上 美元() 在Uf.ea() 在 在Gf() 在 在Fr() 在Bf() 在Mf() 外径设定值()

HTML:


您正在回调中第二次调用
getDownloadURL()
,这将用承诺替换正确的下载URL

解决方案是重用传递到
then()的
url

<div>
   <img id="profile-picture">
</div>
firebase.auth().onAuthStateChanged(function(user) {

var uid = firebase.auth().currentUser.uid

var fileButton = document.getElementById('choose-pfp');

fileButton.addEventListener('change', function(e) {

    var storageRef = firebase.storage().ref("profile_pictures/" + uid);

    var file = e.target.files[0];
    
    storageRef.put(file).then(function(snapshot) {

    window.alert("Profile picture has been uploaded!");



    storageRef.getDownloadURL().then(function(url) {
        document.querySelector('#profile-picture').src = url;

var url = storageRef.getDownloadURL();

        db.collection('users').doc(uid).set({
            pfpURL: url.value,
        
        })
    })
})
});
storageRef.getDownloadURL().then(function(url) {
    document.querySelector('#profile-picture').src = url;

    db.collection('users').doc(uid).set({
        pfpURL: url,
    })
})