这是我的尝试,但它返回未定义但我已经认为这不可能在没有https://mypai.com/api/users
或类似性质的情况下完成。
.child(keys)
这是我的firebase json文本。我想通过许多密钥阅读电子邮件姓氏和用户名,而不仅仅是每个密钥。
var ref = new Firebase("https://users.firebaseio.com/");
ref.child("users").child(authData.uid).on("value", function(snapshot) {
var users = snapshot.val();
console.log("snap: " + snapshot.val());
console.log("username: " + users.username);
console.log("username: " + users.email);
});
答案 0 :(得分:0)
您还没有在任何地方定义您的firebase项目。 我想你必须这样使用。
<script>
// Initialize Firebase
var config = {
apiKey: "your_api_key",
authDomain: "project-0000000000000000.firebaseapp.com",
databaseURL: "https://project-0000000000000000.firebaseio.com",
storageBucket: "project-0000000000000000.appspot.com",
};
firebase.initializeApp(config);
var ref= firebase.database().ref();
ref.child("users").child(authData.uid).on("value", function(snapshot) {
var users = snapshot.val();
console.log("snap: " + snapshot.val());
console.log("username: " + users.username);
console.log("username: " + users.email);
});
</script>
答案 1 :(得分:0)
您正在寻找与orderByChild
结合的equalTo
。
ref.child("users").orderByChild("username").equalTo("smith").on("value", function(snapshot) {
var users = snapshot.val();
console.log("snap: " + snapshot.val());
//loop over the found results
snapshot.forEach(function(user){
console.log(user);
});
});
在您的代码段中,您正在使用旧版sdk初始化您的参考。新的firebase sdk已经改变了一点。
firebase.initializeApp(config);
var ref= firebase.database().ref();
另请注意,您无法使用多个orderByChild
来查询多个子参数。在这种情况下,this question将为您提供有关如何处理它的一些想法。
答案 2 :(得分:0)
taskref.onAuth(function(authData) {
taskref
.child("users")
.child(authData.uid)
.child("task")
.orderByChild('date')
.on('value', function(snapshot) {
$scope.list = [];
snapshot.forEach(function(child) {
// $scope.list = $scope.list.concat(child.val());
$scope.list.splice(0, 0, child.val());
console.log($scope.list);
});
$scope.taskKeys = function() {
return Object.keys($scope.list);
}
$scope.complete = function(key) {
taskref.child("users")
.child(authData.uid)
.child('task')
.child(key)
.set({
status: true
});
}
});