小编Agu*_*ana的帖子

在 Firebase 远程配置中设置最小间隔和设置 fetch withExpirationDuration 有什么区别?

从这里的文档来看,据说我必须像这样设置远程配置

let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 0
remoteConfig.configSettings = settings
Run Code Online (Sandbox Code Playgroud)

我假设上面的代码用于始终从远程获取数据(以避免 12 小时的等待,用于测试)。但我还找到下面的代码来使用过期时间获取值

    let fetchDuration: TimeInterval = 0

    remoteConfig.fetch(withExpirationDuration: fetchDuration) { (status, error) in

        if let error = error {
            // show the error
        } else {
            // do something
        }

    }
Run Code Online (Sandbox Code Playgroud)

这两者有什么区别?使用哪一个进行测试以避免等待 12 小时?

ios firebase firebase-remote-config

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

我可以更改 Firestore 时间戳字段中保存的时区吗?

所以从这里的文档中可以看出

时间戳表示独立于任何时区或日历的时间点,以 UTC 纪元时间中纳秒分辨率的秒和秒的分数表示

但这是我文档中的时间戳字段

在此输入图像描述

如您所见,有 UTC+7。我来自印度尼西亚,我的 Firestore 数据库也在 asia-southeast2 区域(印度尼西亚雅加达)。

我的问题是……

我真的可以改变那个时区吗?即使文档说时间戳独立于任何时区。但我不明白为什么 Firestore 可以获得 UTC+7,这是正确的,因为我从印度尼西亚 (UTC+7) 发送数据

我尝试在 Android 应用程序中操作日期对象,并使用不同的时区 (UTC+9) 发送数据,但它始终会保存为 UTC+7。

所以基本上我想找出我的代码中是否存在错误或者 firestore 中的时区是否无法更改

timezone firebase google-cloud-firestore

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

如何在 Camera X 库中以编程方式更改相机镜头朝向?

目前我正在使用这个gradle

implementation "androidx.camera:camera-camera2:1.0.0-beta11"
implementation "androidx.camera:camera-lifecycle:1.0.0-beta11"
implementation "androidx.camera:camera-view:1.0.0-alpha18"
Run Code Online (Sandbox Code Playgroud)

所以我想在用户点击按钮后以编程方式更改相机镜头的朝向。这是我尝试使用的代码

class CameraFragment : Fragment() {

    private var cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA

    lateinit var mContext: Context
    lateinit var mActivity: FragmentActivity

    override fun onAttach(context: Context) {
        super.onAttach(context)

        mContext = context
        activity?.let { mActivity = it }

    }

    private fun toggleFrontBackCamera() {


        if (cameraSelector == CameraSelector.DEFAULT_BACK_CAMERA) {
            cameraSelector = CameraSelector.DEFAULT_FRONT_CAMERA
        } else if (cameraSelector == CameraSelector.DEFAULT_FRONT_CAMERA) {
            cameraSelector == CameraSelector.DEFAULT_BACK_CAMERA
        }

        startCamera()


    }

    private fun startCamera() {
        val cameraProviderFuture = ProcessCameraProvider.getInstance(mContext)

        cameraProviderFuture.addListener(Runnable {
            // Used to …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack android-camerax

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

我如何知道页面是否已推送到导航堆栈中?

假设我有 2 个页面,PageA 和 PageB。

如果用户点击 PageA 中的按钮,那么它将使用下面的代码移动到 PageB

Navigator.of(context).pushNamed("pageB");
Run Code Online (Sandbox Code Playgroud)

因此,PageB 的左上角应用栏中有后退按钮

我的问题是……

我如何知道页面是否被推送?我只想在页面的应用栏中有后退按钮时执行某些操作

dart flutter flutter-navigation

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

viewDidLoad,只调用一次吗?

我是iOS开发的初学者,我正在使用firebase数据库制作一个简单的聊天应用程序.其实我对viewDidLoad方法的使用感到困惑.

以下是该应用的屏幕截图:https://ibb.co/gqD4Tw

我不明白为什么retrieveMessage()法提上viewDidLoad时,我想发送数据(聊天消息)火力数据库,我使用的sendButtonPressed()方法(这是IBAction),当我想从数据库中检索数据,我用retrieveMessage().

retrieveMessage()调用该方法viewDidLoad,据我所知,该viewDidLoad方法只在视图加载到内存后调用一次.我们通常将它用于初始设置.

因此,如果viewDidLoad在初始设置中只调用一次,为什么在retrieveMessage()将消息数据发送到数据库之后,该方法可以一遍又一遍地检索我已经发送到我自己的数据库的所有消息?

我不明白为什么下面的retrieveMessage()方法是viewDidLoad简化代码:

class ChatViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {


    var messageArray = [Message]()

    @IBOutlet var messageTextfield: UITextField!
    @IBOutlet var messageTableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        //Set as the delegate and datasource :
        messageTableView.delegate = self
        messageTableView.dataSource = self

        //the delegate of the text field:
        messageTextfield.delegate = self

        retrieveMessage() …
Run Code Online (Sandbox Code Playgroud)

ios firebase swift firebase-realtime-database

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

如何在Swift中制作可设计的UIImage

我是初学者。我想制作一个包含使Designable UIImage可用的代码的swift文件,所以我不会通过编码来编辑UI元素的显示,而只是在Interface Builder中通过将该swift文件分配给UI类来进行编辑。

我可以在UIButton中做类似的事情,例如,如果我想做圆角并向UIButton添加边框,我可以做这样的事情

import UIKit

@IBDesignable
class DesignableButton: UIButton {

    @IBInspectable var cornerRadiusOfButton : CGFloat = 0 {
        didSet {
            layer.cornerRadius = cornerRadiusOfButton
        }
    }

    @IBInspectable var borderWidth: CGFloat {
        set {
            layer.borderWidth = newValue
        }
        get {
            return layer.borderWidth
        }
    }

    @IBInspectable var borderColor: UIColor? {
        set {
            guard let uiColor = newValue else { return }
            layer.borderColor = uiColor.cgColor
        }
        get {
            guard let color = layer.borderColor else { return nil }
            return UIColor(cgColor: color)
        }
    } …
Run Code Online (Sandbox Code Playgroud)

uiimageview uiimage ios swift ibdesignable

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

如何使用云功能制作缩略图并将其放置在 Firebase 存储中的特定文件夹中?

这里有一个来自 firebase 的关于如何创建缩略图的示例代码:

https://github.com/firebase/functions-samples/blob/master/quickstarts/thumbnails/functions/index.js

代码是这样的

// [START import]
const functions = require('firebase-functions');
const gcs = require('@google-cloud/storage')();
const spawn = require('child-process-promise').spawn;
const path = require('path');
const os = require('os');
const fs = require('fs');
// [END import]

// [START generateThumbnail]
/**
 * When an image is uploaded in the Storage bucket We generate a thumbnail automatically using
 * ImageMagick.
 */
// [START generateThumbnailTrigger]
exports.generateThumbnail = functions.storage.object().onFinalize((object) => {
// [END generateThumbnailTrigger]
  // [START eventAttributes]
  const fileBucket = object.bucket; // The Storage bucket …
Run Code Online (Sandbox Code Playgroud)

node.js google-cloud-storage firebase google-cloud-functions firebase-storage

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

使用导航参数传递数据时,如何解决 Kotlin 中的 ArrayList 无法转换为 android.os.Parcelable[] 错误?

我正在尝试使用这样的导航参数将类别数据(ArrayList)从一个片段发送到另一个片段。

fun setUpArgumentForSearchDestination(categories: ArrayList<Category>) {

    val searchDestination = fragmentView.findNavController().graph.findNode(R.id.destination_search)
        searchDestination?.addArgument(
            "allCategories", NavArgument.Builder()
            .setType(NavType.ParcelableArrayType(Category::class.java))
            .setDefaultValue(categories)
            .build())
        }
Run Code Online (Sandbox Code Playgroud)

在搜索片段中,我从参数中收到数据,如下所示:

       arguments?.let {
            // I get error in the code below:
            val categories = it.getParcelableArrayList<Category>("allCategories")

        }
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

java.util.ArrayList 无法转换为 android.os.Parcelable[]

我试图找到答案,即使我不确定这个问题的原因,似乎我必须Category像这个线程一样自定义我的类:Read &writing arrays of Parcelable objects

但我是一个初学者,并不太理解该线程的答案。我已经尝试实施parcelable,但仍然不起作用。这是我的Category

class Category() : Parcelable {

    var id : Int = 0
    var name : String = ""
    var parentID : Int = 0
    var imageURL : String = ""

    constructor(parcel: …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-navigation android-jetpack android-architecture-navigation

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

如何使用 Firebase Cloud Messaging 发送静默通知/后台通知?

我需要使用 Firebase Cloud Messaging 在我的 iOS 应用程序中发出静默通知/后台通知,这样即使用户没有点击推送通知,我也可以在应用程序中进行更新。

Apple关于后台通知的文档在这里,据说是

要发送后台通知,请使用 aps 字典创建远程通知,该字典仅包含有效负载中的内容可用键

该文档中的后台通知的示例有效负载如下所示:

{
   "aps" : {
      "content-available" : 1
   },
   "acme1" : "bar",
   "acme2" : 42
}
Run Code Online (Sandbox Code Playgroud)

因此,我在使用云函数节点 JS 发送 FCM 时创建自己的有效负载。我的代码是这样的

        const userToken = device.token

        const payload = {
            data: {
                notificationID : notificationID,
                creatorID : moderatorID,
                creatorName: creatorName,
                title : title,
                body : body,
                createdAt : now,
                imagePath : imagePath,
                type: type
            },
            apps : {
                "content-available" : 1 // to force background data update in …
Run Code Online (Sandbox Code Playgroud)

node.js ios google-cloud-functions firebase-cloud-messaging

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

我不小心删除了 Google Firebase 自动创建的 API 密钥,我该怎么办?

10 分钟前,我刚刚删除了 Firebase/Google 自动创建的 3 个键。密钥位于下面的 API 密钥部分

在此输入图像描述

我想我刚刚删除了 3 个键。安卓、iOS 和网络。我认为我不再需要该密钥,因为我可以创建自己的 API 密钥。因为我删除了这 3 个密钥,所以现在我无法从移动应用程序中的 Firestore 获取数据,并且无法使用 Firebase Auth 登录。

我应该怎么办?

firebase google-cloud-platform

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