小编Sch*_*yer的帖子

如何在 React Native 中等待来自 firebase 身份验证的持久用户

我在我的 React Native 应用程序中使用 firebase auth(通过 expo),身份验证通过观察者(包括持久用户)工作正常:

import firebase from "firebase";

firebase.auth().onAuthStateChanged(user => {
    if (user) {
        this.props.setUser(user);
    }
}).bind(this);
Run Code Online (Sandbox Code Playgroud)

我显示一个带有登录/注册的登陆屏幕,如果用户使用帐户登录,我将转发到主应用程序。应用程序启动后,加载持久用户时需要一段时间才能触发onAuthStateChanged方法,这导致我的应用程序短暂显示此登陆屏幕,然后导航离开。我希望有一个加载屏幕,直到正确确定身份验证状态。

但是,如果没有持久用户,则 onAuthStateChanged 永远不会触发,因此我没有要等待的特定事件。我可以使用超时计时器,但这似乎是一个糟糕的解决方案,因为必要的等待时间可能会根据硬件和连接速度而有很大差异。

如何正确解决这个问题,即我如何知道没有持久用户?

javascript firebase react-native firebase-authentication expo

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

Firebase Firestore toObject() 不适用于数据类

我想从 firebase firestore 获取数据并使用数据类转换 toObject() 。但它不起作用,因为对象已初始化但未设置字段。

这与 Kotlin 的 Firebase Firestore toObject()非常相似。但我已经使用了使用数据类的建议答案,但它仍然不起作用。

数据类

data class DataClass(
    var str : String = "default",
    var int : Int = 0,
    var bool: Boolean = false
)
Run Code Online (Sandbox Code Playgroud)

备注:使用非数据类或更改变量名称(在代码数据库中)没有任何区别。

我实际上想使用更复杂的数据/对象,但剥离了其他所有内容以使其首先工作。

代码

val clusterRef = db.collection("cluster")
clusterRef.document("e8efpRf2FBPwByWqaIRe").get(Source.SERVER).addOnSuccessListener { documentSnapshot ->
    Log.d(TAG, "${documentSnapshot.id} => ${documentSnapshot.data}")
    val cluster = documentSnapshot.toObject(DataClass::class.java)
    Log.d(TAG,"${cluster?.str} ${cluster?.int} ${cluster?.bool}")
    Log.d(TAG, "object: $cluster")
}
Run Code Online (Sandbox Code Playgroud)

日志猫

e8efpRf2FBPwByWqaIRe => {str=HelloWorld, bool=true, int=42}

W/Firestore: (21.3.0) [k]: No setter/field for str found on class c.d.a.c.a …
Run Code Online (Sandbox Code Playgroud)

android kotlin firebase google-cloud-firestore

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

有没有办法在通用Windows应用程序中注册热键?从4.5转换为UWP时功能丢失

我使用Windows设置了热键.输入和挂钩,但似乎通用Windows应用程序不允许你这样做.我在Nuget中尝试的所有库都失败了,我似乎无法使用相同的方法来使用hWnd,RegisterHotKey和hooks.

UWP是否删除了此功能?

.net c# hook hotkeys win-universal-app

5
推荐指数
0
解决办法
809
查看次数

Python Telegram Bot Markdown

我正在用 Python 开发 Telegram Bot,但我很难正确使用 Markdown。但是我找不到有关电报降价实施的任何适当资源。由于两个不同的降价“版本”(Markdown 和 Markdown_V2),它变得更加复杂。并且它们都与正常聊天字段的行为(手动输入)不匹配。

测试字符串:

*Bold*, _italic_, *_bold and italic_*, **double bold**, __double italic__, __**double bold and double italic**__
Run Code Online (Sandbox Code Playgroud)

parse_mode="Markdown"

粗体斜体_粗体和斜体_、双粗体、双斜体、双粗体和双斜体

parse_mode="Markdown V2"

粗体斜体粗体和斜体、双粗体、双斜体、双粗体和双斜体

聊天中

*粗体*、_斜体_、*_粗体和斜体_*、双粗体双斜体**双粗体和双斜体**

——

如何添加粗体斜体,是否还有其他命令,例如下划线等?我需要一些解释。谢谢。

python markdown python-3.x python-telegram-bot telegram-bot

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