我正试图在Firestore中创建数据时设置纪元.我希望得到一些与实时数据库中所做的相似的结果ServerValue.TIMESTAMP.
我不想通过使用设备时间来设置它,System.getCurrentMillis因为用户可以更改该时间.
根据文档需要进行更新,问题就是格式.这是我的代码:
Map<String, Object> map = new HashMap<>();
map.put("timestamp", FieldValue.serverTimestamp());
reference.update(map);
Run Code Online (Sandbox Code Playgroud)
这是Firebase Web控制台中的结果:
我很惊讶它是西班牙语,这在某些情况下可能有用,但是时代就是我追逐的东西.尝试看到光明的一面并坚持下去,并认为我用西班牙语看到网络,所以我改变了页脚选择器中的语言,它没有改变.在这一点上,我假设是用项目语言设置的.
回到时代的尝试.考虑到我的项目也在使用实时数据库,我尝试以这种方式设置它:
Map<String, Object> map = new HashMap<>();
map.put("timestamp", ServerValue.TIMESTAMP);
reference.update(map);
Run Code Online (Sandbox Code Playgroud)
它确实上传了一些东西,但这只是胡说八道.
我认为使用epoch作为服务器端时间戳是一种更好的标准方法,之后每个客户端都可以将其转换为用户便利性和语言环境.
可以在Firestore中将epoch设置为服务器值吗?
UPDATE
标记为正确的答案引导我得到一些我想分享的有趣发现,因此处于相同情况的其他人可以从中受益:
FieldValue.serverTimestamp()它是由数据库处理的日期对象,我们在控制台中看到的只是一种友好的方式来显示它.FieldValue.serverTimestamp()是日期对象,因此可以按任何其他时间戳排序,如果添加orderBy("timestamp", Query.Direction.DESCENDING)到查询(或Query.Direction.ASCENDING),它将正确排序结果.我有一个设置背景颜色的可组合项,我想测试一下。
@Composable
fun MyComposableButton(
enabledColor: Color,
disableColor: Color,
isEnabled: Boolean = true,
) {
val buttonBackgroundColor = if (enabled) enabledColor else disableColor
Button(
...
enabled = enabled,
colors = ButtonDefaults.textButtonColors(
backgroundColor = buttonBackgroundColor
)
) { ... }
}
Run Code Online (Sandbox Code Playgroud)
我期待编写如下测试:verifyEnabledBackgroundColor和verifyDisabledBakcgroundColor。
我在组合测试中找不到直接可用的任何断言,当尝试创建自己的断言时,我发现使用SemanticMatcther了 a SemanticNode,但构造函数是最新的内部断言,因此无法进行。
我尝试过mock,Color但我做不到,根据这个答案,需要高 API 级别,这对我的项目来说是不行的。
如何测试设置可组合项的背景颜色?
我在AppBarLayout中使用了CollapsingToolbarLayout,用户可以使用setExpanded(boolean)AppBarLayout中的方法展开或折叠它.
问题是动画很慢而且不流畅.
我正在搜索,似乎支持设计库存在问题(请阅读此问题).但我不能降级我的支持设计库因为Im使用BottomSheetBehavior,我得到这个错误:
Error:(88) No resource identifier found for attribute 'behavior_hideable' in package...
Error:(88) No resource identifier found for attribute 'behavior_peekHeight' in package...
Run Code Online (Sandbox Code Playgroud)
有什么建议可以提高setExpand的速度吗?
android android-support-design android-collapsingtoolbarlayout android-appbarlayout
我在我的应用程序中实现了深色主题。一切正常,当系统处于深色模式时,应用程序也处于深色模式,反之亦然。
问题是品牌启动。我有 2 个可绘制文件:
黑暗的:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item android:drawable="@color/splashColorDark"/>
<item>
<bitmap
android:src="@drawable/logo_branded"
android:mipMap="true"
android:gravity="center"/>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
还有光:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item android:drawable="@color/splashColorLight"/>
<item>
<bitmap
android:src="@drawable/logo_branded"
android:mipMap="true"
android:gravity="center"/>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
为了使用品牌发布,我添加了以下内容:
android:theme="@style/AppTheme.BrandedLaunchLight"
Run Code Online (Sandbox Code Playgroud)
在我的AndroidManifest.xml
显然,这样做我无法在黑暗模式处于活动状态时设置黑暗品牌启动。我应该怎么办?
我是科特林新手。我遇到了一个问题。
我有这个代码:
val sdf = SimpleDateFormat("dd.MM.yyyy")
val currentDate = sdf.format(Date())
println(currentDate)
val stringDate = "12.03.2015"
val dateFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy", Locale.ENGLISH)
val millisecondsSinceEpoch = LocalDate.parse(stringDate, dateFormatter)
.atStartOfDay(ZoneOffset.UTC)
.toInstant()
.toEpochMilli()
println(millisecondsSinceEpoch)
val time = currentDate - millisecondsSinceEpoch
val Datee = sdf.format(time)
println(Datee)
Run Code Online (Sandbox Code Playgroud)
但上线了:
val time = currentDate - millisecondsSinceEpoch
val Datee = sdf.format(time)
println(Datee)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
java.lang.IllegalArgumentException: Cannot format given Object as a Date
Run Code Online (Sandbox Code Playgroud)
请帮助我如何解决这个问题。我需要从字符串中的日期中减去当前日期。
更新:
如何正确地从一个日期减去另一个日期并得到天数差异?