【问题标题】:How edit register in firebase如何在firebase中编辑寄存器
【发布时间】:2016-03-19 06:53:31
【问题描述】:

我尝试使用以下代码在我的 firebase 中编辑寄存器:

'use strict';

var React = require('react');

module.exports = React.createClass({
    statics: {
        findByCode: function(table, code, event, callback){
            var refFirebase = this.getInstanceFirebase(table);
            refFirebase.orderByChild("code").equalTo(String(code)).once(event, function(snapshot) {
                callback(snapshot);
            });
        },
        saveOrUpdate: function(table, object){
            var self = this;
            var isSave = !(object.update);
            var refFirebase = this.getInstanceFirebase(table);
            this.findByCode(table, object.code, 'value', function(objectDB){
                var objectExistsInDB = (objectDB && objectDB.val());
                if(objectExistsInDB && isSave){
                    alert('Já existe um objeto nax tabela "' + table + '" com o código: ' + object.code)
                    return;
                }

                if(!isSave) refFirebase.set(object)
                else refFirebase.push(object);
            });
        },
        delete: function(table, object){
            var refFirebase = this.getInstanceFirebase(table);
        },
        getInstanceFirebase: function(table){
            var authHandler = function(error, authData) {
                if (error) console.log("Login Failed!", error);
            }
            var login = '123@gmail.com',
                password = '123',
                token = '123';

            var ref = new Firebase("https://blazing-fire-2429.firebaseio.com/" + table);
            ref.authWithPassword({
                email    : login,
                password : password
            }, authHandler);
            return ref;
        }
    },
    render: function() {

    }
});

我的数据库:

当我的数据库中的刮刀 refFirebase.set(object) 数据被覆盖时。并且只显示最后一次更新数据。

有什么问题?

更新 1

当使用 refFirebase.update(object);

Firebase 在根路径中包含新寄存器:

【问题讨论】:

    标签: reactjs firebase


    【解决方案1】:

    这就是set 的工作方式。如果只想设置object 中存在的键,则应使用refFirebase.update(object)。见the documentation for update

    【讨论】:

    • 感谢您的回复。使用 refFirebase.update(object) 时。 Firebase 在根路径中包含新寄存器。现在看看我的问题。
    • @EmirMarques 如果你想创建一个子节点,你应该改用push。从你的问题中不清楚你到底想要做什么。
    猜你喜欢
    • 2021-03-25
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多