如何在 Firebase 中创建一个新的 DatabaseError 实例?

How to create a new DatabaseError instance in Firebase?

有没有办法生成 DatabaseError 对象的新实例?

编辑:

我正在使用 class 实现 ValueEventListener,我想在其中捕获异常并通过 onCancelled(DatabaseError databaseError) 方法传递错误。

public class StandardSingleValueListener<T> implements ValueEventListener {

    protected Class<T> mTypeClass;

    public StandardSingleValueListener(Class<T> typeClass){
        mTypeClass = typeClass;
    }
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        T result = null;
        try {
            result = parseMethod(dataSnapshot);
        } catch (Exception e) {
            onCancelled(new DatabaseError(e.toString()); // I'd like to create the error here
            return;
        }
        // process result
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        // process databaseError
    }

    protected T parseMethod(DataSnapshot snap){
        return snap.getValue(mTypeClass);
    }
}

其中 parseMethod 有时会被覆盖,而 mTypeClassT 的 class。

您可以通过以下方式创建 DatabaseError from the exception

DatabaseError.fromException(e);

但我不确定这是个好主意。您发出的错误信号是应用程序级错误。将其提升为 DatabaseError 势必会导致那些在您之后维护代码的人感到困惑。