2016-08-21 7 views
5

Привет, я работаю над некоторым проектом firebase, и я могу сохранить свои данные через javascript в базу данных firebase. Но я не мог понять, как автоматически увеличить дочернее значение (мое дочернее значение - duyuru, вы можете увидеть подробности ниже) моей базы данных. Я делюсь своим кодом ниже, вы можете дать мне подсказки для решения этой проблемы.Автоматическое увеличение значения в firebase с помощью javascript

<script> 

     // Initialize Firebase 
     var config = { 
     apiKey: "sample1", 
     authDomain: "sample2", 
     databaseURL: "sample3", 
     storageBucket: "sample4", 
     }; 


     firebase.initializeApp(config); 
     var database = firebase.database(); 

    firebase.initializeApp(config); 
    var database = firebase.database(); 

    function writeUserData(userId, name, email, imageUrl) { 
    var kategori1 = document.getElementById("kategori").value; 
    var duyuru1 = document.getElementById("duyuru").value; 
    var name1 = document.getElementById("name").value; 
    var email1 = document.getElementById("email").value; 
    var imageUrl1 = document.getElementById("imageUrl").value; 





    firebase.database().ref(kategori1 +"/" + duyuru1).set({ 
    username: name1, 
    email: email1, 
    profile_picture : imageUrl1 
    }); 
} 

    </script> 

и вне, как это

{ 
    "duyuru1": { 
     "email": "kjfdlkl", 
     "profile_picture": "dsfsd", 
     "username": "meraha" 
    } 
} 

Я хочу, чтобы выходные данные, как;

{ 
    "duyuru1": { 
     "email": "kjfdlkl", 
     "profile_picture": "dsfsd", 
     "username": "meraha" 
    }, 

    "duyuru2": { 
     "email": "kjfdlkl", 
     "profile_picture": "dsfsd", 
     "username": "meraha" 
    } 
} 

раздел duyuru (дочернее значение) должен быть автоматическим приращением, вот чего я хотел. Спасибо за ответы.

ответ

8

У Firebase нет автоматических инкрементных клавиш, так как они не работают хорошо в многопользовательских системах, где клиенты могут находиться в автономном режиме в течение длительного времени.

Вместо этого у Firebase есть свой тип автогенерированных ключей с именем push ID. Эти идентификаторы push имеют одинаковые важные свойства последовательностей во многих реляционных базах данных: они упорядочены и последовательны. Но, кроме того, их можно вычислить на стороне клиента, даже если клиент не подключен к серверам Firebase.

См. Firebase documentation on saving data in lists, это наследие blog post on why arrays don't work well in Firebase и этот post on how push ids work.

+0

Спасибо, что ответили на мой вопрос. Но я хочу спросить вас, когда я использую этот метод, он создал случайные ключи, мне просто интересно, есть ли способ создать пользовательский приращение с помощью javascript. Например, когда пользователи автоматически добавляют данные к данным. Например, для первого сообщения duyuru1, второго сообщения duyuru2 и т. Д. –

+0

Это номер в конце, кажется, как индекс массива и, следовательно, не будет масштабироваться. Ссылки, которые я приводил, объясняют причины лучше, чем я могу сделать здесь. Если вы настаиваете на использовании пользовательских последовательностей, вам придется реализовать их самостоятельно. Firebase не имеет встроенной поддержки для них. –

+0

Да по ссылке, которую вы дали мне, чтобы она лучше работала с этим дефолтом, спасибо. Ваш ответ даст мне еще один взгляд на мое приложение. Хорошего дня –