小编Cod*_*224的帖子

如何从云功能获取Firebase项目名称或ID

我正在使用云功能,并希望从我的一个Javascript服务器文件中获取项目名称.我知道该值存储在.firebaserc中,但我不认为该文件在服务器上可用,对吧?我想做这样的事情:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.getProjectName();  // or getProjectID()
Run Code Online (Sandbox Code Playgroud)

要么

functions.getProjectName(); 
Run Code Online (Sandbox Code Playgroud)

javascript node.js firebase google-cloud-functions

12
推荐指数
3
解决办法
5449
查看次数

如何解析可能具有两个分隔符之一的CSV文件?

在我的例子中,有效的CSV是用逗号或分号分隔的.我对其他库开放,但它需要是Java.通过Apache CSVParser API阅读,我唯一能想到的就是这样做看起来既低效又丑陋.

try
{
   BufferedReader reader = new BufferedReader(new InputStreamReader(file));
   CSVFormat csvFormat = CSVFormat.EXCEL.withHeader().withDelimiter(';');
   CSVParser parser = csvFormat.parse( reader );
   // now read the records
} 
catch (IOException eee) 
{
   try
   {
      // try the other valid delimeter
      csvFormat = CSVFormat.EXCEL.withHeader().withDelimiter(',');
      parser = csvFormat.parse( reader );
      // now read the records
   }
   catch (IOException eee) 
   {
      // then its really not a valid CSV file
   }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法首先检查分隔符,或者可能允许两个分隔符?除了捕获异常之外,任何人都有更好的想法吗?

java csv apache-commons-csv

8
推荐指数
1
解决办法
7028
查看次数

将使用核心数据的iOS应用程序同步到云端

我用Swift 2编写了一个使用Core Data进行持久化的应用程序.我正在考虑添加一个功能,以便在云端持续存在.我已经阅读了关于Realm和CloudKit的教程,但是没有看到在核心数据之上(或与之一起)使用它们的很好的例子.

我想要:

  1. 允许用户输入一次数据并将其显示在所有设备上.
  2. 让用户与他们选择的用户同步他们的一些数据.

我可以保留所有核心数据逻辑,只需在使用CloudKit(或其他一些框架)的CRUD操作期间添加一些服务器调用吗?例如,我NSFetchedResultsController用于我的几个表,在使用CloudKit时继续使用它是否有意义?

core-data realm ios swift cloudkit

5
推荐指数
1
解决办法
4622
查看次数

服务器记录中的CKAsset不包含fileURL,甚至无法检查nil

当我使用保存策略保存包含CKAsset(只是 JPG 图像)的记录时,我正在测试同步冲突。我收到错误。这会返回用于解决冲突的有用信息,包括我尝试保存的信息以及记录的当前服务器版本。第一个在,第二个在。CKModifyRecordsOperation.IfServerRecordUnchangedCKErrorCode.ServerRecordChangedCKErrorCKRecorderror.userInfo[CKRecordChangedErrorClientRecordKey]error.userInfo[CKRecordChangedErrorServerRecordKey]

我的问题是我尝试使用以下代码访问服务器记录的 CKAsset:

if let photoAsset = rec["myPhoto"] as? CKAsset {
  print("PhotoAsset.fileURL: \(photoAsset.fileURL)")  // BAD_ACCESS ERROR HERE
  self.myPartner.photo = NSData(contentsOfURL: photoAsset.fileURL)
}
Run Code Online (Sandbox Code Playgroud)

我不明白这怎么可能。但经过进一步调查,我打印出了客户端和服务器 CKRecords,而服务器缺少“路径”属性。

客户端 CKAsset...myPhoto (已修改)-> CKAsset:0x7b960d90;路径=~/tmp/BF185B2C-7A39-4730-9530-9797E843243A照片,大小=373959,uploadRank=0,uploadReceipt=A92Eg1qoyPG7yrg3,UUID=3C2D5DC8-4FF5-4A81-853B-395FC1C59862,referenceSignature=<012 fd149 200fc600 617e3907 88763e3e 5002abbf 5b> 、flags=已上传、wrappedEncryptionKey=、签名=<0134a297 38d52f5f 9275bfba fce5b1a8 3d6b9692 d3>

服务器 CKAsset...myPhoto = CKAsset: 0x7be700d0; ReferenceSignature=<015337bd 84409893 7c014f46 36248d27 ce911dc3 7a>,大小=373959,uploadRank=0,UUID=DF5D2EB4-033C-49A2-AF52-6055B5A44106,wrappedEncryptionKey=<767e7cfd d1e62 110 32119ee9 f6f026b3 5bcf0cc3 8053a4de>,签名=<0134a297 38d52f5f 9275bfba fce5b1a8 3d6b9692 d3>

请注意,path=~/tmp/C706423B-A3E8-4051-A9B3-483C718BFBF5photo服务器中缺少什么?谁能解释一下吗?为了解决这个问题,我尝试避免接触服务器记录中的 CKAsset。我希望至少能够检查是否为零。我想把它放在那里以防对其他人有帮助。

swift cloudkit ckasset ckerror

5
推荐指数
1
解决办法
345
查看次数

CloudKit错误处理 - 重试逻辑

我想在我的应用程序中放置出色的CloudKit错误处理,就像Apple希望我们这样做.我想立即保存和修改记录.这是我的基本保存逻辑......

func addNewRecord(managedObj: NSManagedObject) {
  let newRec = managedObj.convertToCkRecord()
  publicDB.saveRecord(newRec, completionHandler: saveHandler)
}

func saveHandler(savedRecord: CKRecord?, error: NSError?) {
  // handle errors here
  if let error = error {

    if error.code == CKErrorCode.NotAuthenticated.rawValue {
      // debug
      print("Not authentricated")
    }
    else if error.code == CKErrorCode.NetworkFailure.rawValue {
      print("Network failure!!")
      if let retryAfterValue = error.userInfo[CKErrorRetryAfterKey] as? NSTimeInterval {

        let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(retryAfterValue * Double(NSEC_PER_SEC)))
        dispatch_after(delayTime, dispatch_get_main_queue()) {
          // THIS IS WHERE I GET STUCK, WHERE DO I FIND THE FAILED CKRECORD FOR …
Run Code Online (Sandbox Code Playgroud)

multithreading nserror swift cloudkit ckrecord

3
推荐指数
1
解决办法
937
查看次数

已调用 textFieldShouldBeginEditing,未调用 textFieldDidBeginEditing

I have a simple UITableViewController with 6 rows, each with a UITextField. I want to be able to click on each row and have the keyboard apply to each. Everything works, except for some reason I have to click on each row twice to get the responder to make the next UITextField active. I put in UITextFieldDelegate printouts and the order of their actions seems wrong. Each of the TextFields has been tagged 0 - 5. When I select …

uitableview uitextfield swift

1
推荐指数
1
解决办法
2996
查看次数