Ios Swift-如何处理Firebase数据库错误代码

Ios Swift-如何处理Firebase数据库错误代码,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,有FIRAuthErrorCode/authorrorcode来处理Authentication错误 有FIRStorageErrorCode/StorageErrorCode来处理Storage错误 我查看了文档,但找不到任何关于数据库的错误。有什么存在吗?一个链接或一个示例会很有帮助。像存储和身份验证这样的问题似乎没有太多需要处理的地方,因为我能处理的唯一错误是代码=1 我想您指的是错误处理,例如: Database.database().reference().child("Ro

FIRAuthErrorCode/authorrorcode
来处理
Authentication
错误

FIRStorageErrorCode/StorageErrorCode
来处理
Storage
错误


我查看了文档,但找不到任何关于
数据库的错误。有什么存在吗?一个链接或一个示例会很有帮助。

像存储和身份验证这样的问题似乎没有太多需要处理的地方,因为我能处理的唯一错误是代码=1

我想您指的是错误处理,例如:

Database.database().reference().child("RootValue")
    .setValue("Some String") 
{ (err, ref) in 
    //Handle error here
}
我可以显示错误的唯一方法是,只有在经过身份验证时才允许将数据库规则作为写入,这返回了错误:

Error 
Domain=com.firebase
Code=1 
"Permission denied"
UserInfo={ NSLocalizedDescription=Permission denied }
我尝试断开与internet的连接,但过了一段时间后,这只会向控制台输出一个错误。从未调用过完成闭包

我还尝试为数据库设置非法值,但这也不会调用带有错误的闭包。相反,它会抛出一个异常并使应用程序崩溃,这似乎不合适

Database.database().reference().child("RootValue").setValue(Data())
抛出异常

An uncaught exception was raised
2020-10-25 00:14:44.338071-0400 [General] (setValue:withCompletionBlock:) Cannot store object of type _NSZeroData at . Can only store objects of type NSNumber, NSString, NSDictionary, and NSArray.
我发现了一个可能有助于解决事务写入错误的方法,如果这正是您需要的。我已经包括了文件的底部,这似乎是最有用的部分

#pragma mark -
#pragma mark Error handling constants

NSString *const kFErrorDomain = @"com.firebase";
NSUInteger const kFAuthError = 1;
NSString *const kFErrorWriteCanceled = @"write_canceled";

#pragma mark -
#pragma mark Validation Constants

NSUInteger const kFirebaseMaxObjectDepth = 1000;
const unsigned int kFirebaseMaxLeafSize = 1024 * 1024 * 10; // 10 MB

#pragma mark -
#pragma mark Transaction Constants

NSUInteger const kFTransactionMaxRetries = 25;
NSString *const kFTransactionTooManyRetries = @"maxretry";
NSString *const kFTransactionNoData = @"nodata";
NSString *const kFTransactionSet = @"set";
NSString *const kFTransactionDisconnect = @"disconnect";