public string query(string path, string child, string start, string end, ChildCB childCB)
        {
            DatabaseReference f       = FirebaseDatabase.DefaultInstance.RootReference.Child(path);
            Query             qf      = f.OrderByChild(child).StartAt(start).EndAt(end);
            string            pathUid = path + "_" + child + "_" + start + "_" + end;
            RealDBListener    l       = getAndInjectListener(pathUid, qf);

            l.add(ListenerKind.ChildAdd, childCB);
            return(pathUid);
        }
        public void subscribe(string path, Action <string> val)
        {
            if (!isInited())
            {
                throw new NullReferenceException("Not Login");
            }
            DatabaseReference f = getPath(path);
            RealDBListener    l = getAndInjectListener(path, f);

            l.add(ListenerKind.Value, val);
        }
        private RealDBListener getAndInjectListener(string path, Query f)
        {
            RealDBListener l = null;

            if (!subscribeMap.ContainsKey(path))
            {
                l = subscribeMap.get(path, new RealDBListener(f, path));
            }
            else
            {
                l = subscribeMap[path];
            }
            return(l);
        }