gpt4 book ai didi

angularjs - Firebase - 查询链

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:24 25 4
gpt4 key购买 nike

所以我这里有一个有趣的问题。我们的软件包含一项功能,允许根据销售代表、经理之间的层次结构以及我们的用户在使用我们的软件时希望支持的层级进行动态佣金分配。用户可能看起来像这样:

$uid
fname
lname
lineage
fatherlink
$uid_of_another_user
childlink
$uid_of_another_user
$uid_of_another_user

好的,现在假设 childlink 对象中的每个子对象都包含另外两个子对象。例如,我希望能够从经理开始,创建一个包含他的所有 child 及其 child 的 child 等的数组...由于我们支持您想要的任意多个管理级别,因此对给定用户下的所有 child 的查询需要是动态的。这就是我们现在所拥有的。

var children = [];
_.child('user/' + $localStorage.currentUser.uid + '/lineage/child_link').on('value', function(sn1) {
sn1.forEach(function(sn2) {
_.child('user/' + sn2.key + '/lineage/child_link/').on('value', function(sn3) {
sn3.forEach(function(sn4) {
_.child('user/' + sn4.key + '/lineage/child_link/').on('value', function(sn5) {
sn5.forEach(function(sn6) {
_.child('user/' + sn6.key + '/lineage/child_link/').on('value', function(sn7) {
sn7.forEach(function(sn8) {
_.child('user/' + sn8.key + '/lineage/child_link/').on('value', function(sn9) {
sn9.forEach(function(sn11) {
_.child('user/' + sn11.key + '/lineage/child_link/').on('value', function(sn12) {
sn12.forEach(function(sn13) {
children.push(sn13.key)
})
});
children.push(sn11.key)
})
});
children.push(sn8.key)
})
});
children.push(sn6.key)
})
});
children.push(sn4.key)
})
});
children.push(sn2.key)
})
});
return children;

显然,问题是这只查询 6 层深。有任何想法吗?甚至可能吗?

最佳答案

感谢@georgeawq,这是我们的解决方案:

    children: function(callback) {
function getChildren(a) {
_.child("user/" + a + "/lineage/child_link/").once("value", function(a) {
null != a.val() ? a.forEach(function(a) {
children.push(a.key), getChildren(a.key)
}) : children.sort(); callback(children)
})
}
var children = [];
getChildren($localStorage.currentUser.uid);
},

基本但完美的解决方案。谢谢!

关于angularjs - Firebase - 查询链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42917451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com