Javascript 是否可以将.collection().doc()附加到doc.ref.path?

Javascript 是否可以将.collection().doc()附加到doc.ref.path?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我想在下面的示例中的docPath中创建一个新集合。是否可以继续使用.collection().doc()。。。在docPath(doc.ref.path)之后?我经常遇到这样的错误:无法读取未定义的属性“collection” 出现错误的我的函数: function comment(docPath) { var modalcomment = document.getElementById("modal-comment"); modalcomment.st

我想在下面的示例中的docPath中创建一个新集合。是否可以继续使用.collection().doc()。。。在docPath(doc.ref.path)之后?我经常遇到这样的错误:无法读取未定义的属性“collection”

出现错误的我的函数:

function comment(docPath) {

    var modalcomment = document.getElementById("modal-comment");

    modalcomment.style.display = "block";

    var submitcomment = document.getElementById("submitcomment");

    submitcomment.addEventListener('click', (e) => {

        var commentinput = document.getElementById("comment");

        db.docPath.collection('comments').doc().set({

            comment: commentinput.value,

        })
        
    })

}
存储docPath变量的代码:

firebase.auth().onAuthStateChanged(function(user) {

    var query = db.collectionGroup("userPosts")

    query.get().then(querySnapshot => {
        setupPosts(querySnapshot.docs)
    })

    const posts = document.querySelector('.posts');

    const setupPosts = (data) => {
        let html = '';
        data.forEach(doc => {
            var docPath = doc.ref.path;
            console.log(docPath)
            const post = doc.data();
            const picURL = post.picURL;
            let li = `<li class="post">
                <div class="title">${post.title}</div>
                <div class="content">${post.content}</div>
                <button class="comment" onclick="comment('${docPath}')">Comment</button>
                <button class="like" onclick="like('${docPath}')">Like</button>`;
            
            li += (post.picURL ? `<img class="img" src="${post.picURL}" onclick="openImage('${picURL}')">` : ``);
            li += `</li><br></br>`;
            html += li
        })
        
        posts.innerHTML = html;
    }
firebase.auth().onAuthStateChanged(函数(用户){
var query=db.collectionGroup(“userPosts”)
query.get().then(querySnapshot=>{
setupPosts(querySnapshot.docs)
})
const posts=document.querySelector('.posts');
const setupPosts=(数据)=>{
让html='';
data.forEach(doc=>{
var docPath=doc.ref.path;
console.log(docPath)
const post=doc.data();
const picURL=post.picURL;
让li=`
  • ${post.title} ${post.content} 评论 像`; li+=(post.picURL?`:``); li+=`


  • `; html+=li }) posts.innerHTML=html; }

    docPath显示正确的存储数据(文档的正确路径)

    否,不能使用字符串形式的
    doc.ref.path
    。不能对字符串对象调用
    collection()


    也许您想存储的值,它是一个对象。这肯定有一种方法,您可以使用它来构建对该文档下的子集合的更深入引用。

    因此,不可能使用doc.ref.path创建新集合?还有其他方法吗?我在回答中给了您另一种方法。因此,这意味着t我可以将.collection()直接附加到doc.ref上。我可以用doc.ref更改doc.ref.path,这对我有帮助吗?我建议您尝试一下,是的。错误:docref.collection()…不是一个函数。docref=doc.ref