func (ft *Firetest) Update(path string, v interface{}) {
	path = sanitizePath(path)
	if v == nil {
		ft.db.del(path)
	} else {
		ft.db.update(path, sync.NewNode("", v))
	}
}
Update writes the enumerated children to this the given location.
This will overwrite only children enumerated in the "value" parameter
and will leave others untouched. Note that the update function is equivalent
to calling Set() on the named children; it does not recursively update children
if they are objects. Passing null as a value for a child is equivalent to
calling remove() on that child.

Reference https://www.firebase.com/docs/rest/api/#section-patch
package firetest
import (
	"encoding/base64"
	"fmt"
	"sync/atomic"
	"time"
	"github.com/zabawaba99/firego/sync"
)
func (ft *Firetest) RequireAuth(v bool) {
	var val int32
	if v {
		val = 1
	}
	atomic.StoreInt32(ft.requireAuth, val)
}
func (ft *Firetest) Create(path string, v interface{}) string {
	src := []byte(fmt.Sprint(time.Now().UnixNano()))
	name := "~" + base64.StdEncoding.EncodeToString(src)
	path = fmt.Sprintf("%s/%s", sanitizePath(path), name)
	path = sanitizePath(path)
	ft.db.add(path, sync.NewNode("", v))
	return name
}
func (ft *Firetest) Delete(path string) {
	ft.db.del(sanitizePath(path))
}